我有一个数据表,想在数据表的一列(比如类型为字符串的Column1
)上执行不区分大小写的分组操作。我发现通常情况下 LINQ to DataSet 执行的是区分大小写的比较。例如,如果 Column1
包含两个字符串值 "Test" 和 "test",应用 group by
后会返回两行值分别为 "Test" 和 "test" 的结果,而不是一个。
查询代码如下:
var countGroupQuery = from table in dataTable.AsEnumerable()
group table by table.Field<string>(Column1) into groupedTable
select new
{
value = groupedTable.Key,
count = groupedTable.Count()
};
有没有一种方法可以执行不区分大小写的 group by
,以便在上面的示例中我只获得一个具有一个值("Test"或"test")的行?ToUpper
或ToLower
实际上会将值更改为大写或小写,而不是使用至少一个输入值,所以我不想使用它们:
group table by table.Field<string>(Column1).ToUpper() into groupedTable