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

请教关于Linq:不同的值

请教关于Linq:不同的值

繁华开满天机 2019-11-05 12:04:11
Linq:不同的值我从XML中设置了以下项:id           category5            15            35            45            35            3我需要这些物品的单独清单:5            15            35            4在LINQ中,我如何区分类别和ID?
查看完整描述

3 回答

?
叮当猫咪

TA贡献1776条经验 获得超12个赞

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

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-11-06
  • 3 回答
  • 0 关注
  • 633 浏览

添加回答

举报

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