Linq Distinct在列表中

时间:2010-04-30 21:34:26

标签: linq distinct

我有一个这样的清单:

列出人物

age   name
1     bob
1     sam
7     fred
7     tom
8     sally

我需要对人进行linq查询并获得不同年龄(3)

的数字的int
int distinctAges = people.SomeLinq();

如何? 如何?

2 个答案:

答案 0 :(得分:11)

选择年龄,然后使用Distinct和Count。

 var ages = people.Select( p => p.Age ).Distinct().Count()

或者您可以使用GroupBy和Count

 var ages = people.GroupBy( p => p.Age ).Count();

答案 1 :(得分:0)

下载LinqPad并自行提供这些简单的linq / lambda查询。它很容易比较SQL和等效的Linq / lambda结果集。

你会从

开始
select  Age, Name
from    People
group   by Age, Name

然后打开另一个标签

var ages = (from    p in Peoples
group p by p.Age into g
select g);
ages.Dump();

然后打开另一个标签

var ages = Peoples.GroupBy(p => p.Age);
ages.Dump();