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

  • Elliot Davin

    Elliot Davin

    28 Kasım 2008
  • humanHardDrive

    humanHardDri

    16 Mart 2011
  • PlugResearch

    PlugResearch

    22 Mart 2006