C# LINQ filtering
本文关键字:filtering LINQ | 更新日期: 2023-09-27 18:36:22
我有这段代码
var tblGrouped = dtCSV.AsEnumerable()
.GroupBy(r => new
{
product_id = r.Field<String>("product_id"),
owner_org_id = r.Field<String>("owner_org_id"),
});
但是我想添加一个额外的列来过滤。 基本上,例如,如果course_type_id = 1。 dtCSV 是填充course_type_id的源。 我尝试了以下方法,但没有用:
var tblGrouped = dtCSV.AsEnumerable()
.GroupBy(r => new
{
product_id = r.Field<String>("product_id"),
owner_org_id = r.Field<String>("owner_org_id"),
course_type_id = "1",
});
如果我
正确理解您的要求,您想对course_type_id
为 1 的行进行分组吗?
var tblGrouped = dtCSV.AsEnumerable()
.Where(r => r.Field<String>("course_type_id") == "1")
.GroupBy(r => new
{
product_id = r.Field<String>("product_id"),
owner_org_id = r.Field<String>("owner_org_id"),
});
按使用Where
语法进行筛选前任。 .Where(a=>a.Field<String>("course_type_id") == "1")
您需要
先添加条件。您可以使用.Where
来执行此操作:
var tblGrouped = dtCSV.AsEnumerable()
.Where(r => r.Field<String>("course_type_id") == "1")
.GroupBy(r => new
{
product_id = r.Field<String>("product_id"),
owner_org_id = r.Field<String>("owner_org_id"),
course_type_id = "1"
});