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

  • ASUS North America

    ASUS North A

    12 AĞUSTOS 2008
  • BigDawsVlogs

    BigDawsVlogs

    17 HAZİRAN 2013
  • Makeup Lover

    Makeup Lover

    12 HAZİRAN 2011