请教关于Linq:不同的值

Linq:不同的值

我从XML中设置了以下项:


id           category


5            1

5            3

5            4

5            3

5            3

我需要这些物品的单独清单:


5            1

5            3

5            4

在LINQ中,我如何区分类别和ID?


繁华开满天机
浏览 637回答 3
3回答

叮当猫咪

你是想在一个以上的领域中脱颖而出吗?如果是这样的话,只需使用匿名类型和不同的操作符就可以了:var&nbsp;query&nbsp;=&nbsp;doc.Elements("whatever") &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Select(element&nbsp;=>&nbsp;new&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id&nbsp;=&nbsp;(int)&nbsp;element.Attribute("id"), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;category&nbsp;=&nbsp;(int)&nbsp;element.Attribute("cat")&nbsp;}) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Distinct();如果您试图获得“较大”类型的一组不同的值,但只查看一些属性的子集,用于区分性方面,则您可能需要DistinctBy如在MoreLINQ在……里面DistinctBy.cs:&nbsp;public&nbsp;static&nbsp;IEnumerable<TSource>&nbsp;DistinctBy<TSource,&nbsp;TKey>( &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this&nbsp;IEnumerable<TSource>&nbsp;source, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Func<TSource,&nbsp;TKey>&nbsp;keySelector, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IEqualityComparer<TKey>&nbsp;comparer) &nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HashSet<TKey>&nbsp;knownKeys&nbsp;=&nbsp;new&nbsp;HashSet<TKey>(comparer); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;(TSource&nbsp;element&nbsp;in&nbsp;source) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(knownKeys.Add(keySelector(element))) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yield&nbsp;return&nbsp;element; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;}(如果你通过null作为比较器,它将使用键类型的默认比较器。)
打开App,查看更多内容
随时随地看视频慕课网APP