62,041
社区成员
发帖
与我相关
我的任务
分享
//得到分组后的结果
var glist = (from item in list
group item by item.Age into g
orderby g.Count() descending
select g);
//得到出现次数最多的age集合
var ages = glist.Where(g => g.Count() == glist.First().Count()).Select(g => g.Key);
//查询age在age集合中的对象
var result = list.Where(p => ages.Contains(p.Age));
List<User> userList = new List<User>() {
new User{Age=18,Name="123"},
new User{Age=18,Name="312"},
new User{Age=19,Name="23"},
new User{Age=20,Name="234"},
new User{Age=21,Name="345"},
new User{Age=22,Name="456"},
new User{Age=22,Name="345"},
new User{Age=23,Name="64"}
};
var result = from u in userList
group u by u.Age into g
let count = g.Count()
select new
{
g.Key,
count
};
var ttt = from t in result
where t.count == result.Max(a => a.count)
select new User { Age = t.Key, Name = userList.First(u => u.Age == t.Key).Name };
foreach (var u in ttt)
{
Console.WriteLine("Name:{1},Age:{0}", u.Age, u.Name);
}
var users = new List<User>
{
new User { age=18, name="1" },
new User { age=18, name="2" },
new User { age=19, name="3" },
new User { age=20, name="4" },
new User { age=19, name="5" },
new User { age=21, name="6" },
};
var groupByAge = from u in users
group u by u.age into g
select new { key = g.Key, count = g.Count(), items = g };
var result = from u in users
let maxCntAge = groupByAge.Max(g => g.count)
let ages = groupByAge.Where(g => g.count == maxCntAge).Select(g => g.key)
where ages.Contains(u.age)
select u;
foreach (var u in result)
Console.WriteLine("{0}:{1}", u.name, u.age);
var result=(from l in list
group l by l.age into g
orderby g.Count() descending
from t in g
select new user{
age=t.age,
name=t.name
}).FirstOrDefault();