SORU
15 HAZİRAN 2009, PAZARTESİ


SERİ: Farklı değerler

Aşağıdaki öğesi bir XML kümesi var:

id           category

5            1
5            3
5            4
5            3
5            3

Bu öğelerin farklı bir listeye ihtiyacım var:

5            1
5            3
5            4

Nasıl Kategori VE Kimlik için de ayrı bir SERİ olarak alabilir miyim?

CEVAP
15 HAZİRAN 2009, PAZARTESİ


Birden fazla alana göre farklı olmaya çalışıyorsun? Eğer öyleyse, sadece anonim bir tür kullanın ve Farklı operatör ve Tamam olmalıdır:

var query = doc.Elements("whatever")
               .Select(element => new {
                             id = (int) element.Attribute("id"),
                             category = (int) element.Attribute("cat") })
               .Distinct();

Eğer kandırmaya çalışıyorsun ayrı bir set değerlerini bir "büyük" tür, ama sadece bakıyorum bazı alt özellikleri için güçlü ve net bir yönü, muhtemelen istiyorum DistinctBy uygulanan MoreLINQ DistinctBy.cs:

 public static IEnumerable<TSource> DistinctBy<TSource, TKey>(
     this IEnumerable<TSource> source,
     Func<TSource, TKey> keySelector,
     IEqualityComparer<TKey> comparer)
 {
     HashSet<TKey> knownKeys = new HashSet<TKey>(comparer);
     foreach (TSource element in source)
     {
         if (knownKeys.Add(keySelector(element)))
         {
             yield return element;
         }
     }
 }

Eğer karşılaştırıcısı olarak null geçirirseniz (anahtar türü için varsayılan karşılaştırıcısı kullanır.)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Doug Bernards

    Doug Bernard

    7 Kasım 2007
  • sonia989

    sonia989

    26 EKİM 2006
  • The Computer Chronicles

    The Computer

    7 Kasım 2012