【发布时间】:2019-07-20 21:31:52
【问题描述】:
我正在尝试制定一个 LINQ 查询,但不是专业人士,所以无论我尝试什么都行不通。我想过滤列表以从下面的列表中获取电子邮件 ID,其中分数为 0,按团队名称分组。
我尝试这样做的方式是:
- 获取不同团队名称的列表。
- 遍历每个不同的团队名称并获取得分为 0 的电子邮件 ID。
Team Name Score EmailId
Hawk Amy 0 Amy@gmail.com
Hawk Aby 0 Aby@gmail.com
Hawk Raf 1 Raf@gmail.com
Hawk Jay 2 Jay@gmail.com
Eagle Blu 0 Blu@gmail.com
Eagle Tru 1 Tru@gmail.com
我想得到两行:Hawk 和 Amy@gmail.com, Aby@gmail.com,下一个结果将是 Eagle 和 Blue@gmail.com。
这可以通过 LINQ 一步完成吗?
【问题讨论】:
-
data.Where(x => x.Score == 0).Select(x => new { x.Team, x.EmailId }).GroupBy(x => x.Team)? -
为什么要避免循环?
-
为什么要按团队分组?您最多将获得 2 条记录:Hawk、Eagle。这就是你想要的吗?
-
您的第一种方法可能非常易读且易于维护 :) 但我可以理解使用漂亮 linq 语句的冲动;)
标签: c# asp.net list linq linq-to-objects