为了账号安全,请及时绑定邮箱和手机立即绑定

Linq:不同的值

Linq:不同的值

侃侃无极 2019-07-15 19:10:58
Linq:不同的值我从XML中设置了以下项:id           category5            15            35            45            35            3我需要这些物品的单独清单:5            15            35            4在LINQ中,我如何区分类别和ID?
查看完整描述

3 回答

?
守着一只汪

TA贡献1872条经验 获得超3个赞

你是想在一个以上的领域中脱颖而出吗?如果是这样的话,只需使用匿名类型和不同的操作符就可以了:

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

如果您试图获得“较大”类型的一组不同的值,但只查看一些属性的子集,用于区分性方面,则您可能需要DistinctBy如在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;
         }
     }
 }

(如果你通过null作为比较器,它将使用键类型的默认比较器。)


查看完整回答
反对 回复 2019-07-15
  • 3 回答
  • 0 关注
  • 394 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信