1

我有这段代码

            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",
                });
4

3 回答 3

6

如果我正确理解您的要求,您想对 acourse_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"),
        });
于 2012-06-06T18:52:13.153 回答
2

您需要先添加条件。您可以使用.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"
    });
于 2012-06-06T18:51:39.373 回答
2

按使用Where语法过滤。.Where(a=>a.Field<String>("course_type_id") == "1")

于 2012-06-06T18:52:58.387 回答