这就是我过滤和分组 transTasks 的方式。
var transTasks = from t in taskData
where t.RangeName == rName
group t by t.CultureID into g
select new { language = g.Key, tasks = g };
现在我有了新的要求。根据具体情况,我可以按 RangeName 或 TaskOrderId 进行过滤。
这就是我将上述Linq代码转换为以下内容的原因;
var transTasks = taskData
.Where(predicate)
.GroupBy(???)
.Select(???);
我已经研究过,但我仍然无法找到扩展方法的组到的等价物。我需要对那些transTasks进行分组,因为在另一个循环中有一个循环。
感谢您的帮助
答案 0 :(得分:3)
GroupBy
是等价的,似乎你已经弄明白了,你在方法语法中的查询将是:
var transTrasks = taskData.Where(t => t.RangeName == rName)
.GroupBy(t => t.CultureID)
.Select(g => new { language = g.Key, tasks = g });
作为旁注,查询表达式中的任何LINQ查询都会编译为方法语法。
答案 1 :(得分:1)
var transTasks = taskData
.Where(predicate)
.GroupBy(t => t.CultureID)
.Select(g => new { language = g.Key, tasks = g });