2010-04-30 77 views
4

我有一個這樣的名單:LINQ的鮮明名錄

列表

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

我需要做的人LINQ查詢並獲得許多不同年齡的一個int(3)

int distinctAges = people.SomeLinq(); 

怎麼樣? 怎麼樣?

+0

這是一個非常簡單的問題,所以這聽起來像功課給我們。你試過什麼了? – 2010-04-30 21:35:12

+0

查看'GroupBy'和'Count'。 – 2010-04-30 21:37:06

回答

11

選擇年齡,然後使用Distinct和Count。

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

或者你可以使用的GroupBy和計數

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

下載LinqPad,並給這些簡單的LINQ /λ查詢自己。它很容易比較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();