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

  • audivila

    audivila

    5 HAZİRAN 2009
  • Phymec

    Phymec

    18 Temmuz 2009
  • ShayLoss

    ShayLoss

    5 Kasım 2009