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

  • Call Me Howard

    Call Me Howa

    18 AĞUSTOS 2012
  • CZTUTORIALS

    CZTUTORIALS

    28 Ocak 2011
  • pain975

    pain975

    27 NİSAN 2008