【发布时间】:2010-12-02 05:40:47
【问题描述】:
我有一个数据表,我想通过数据表的一列(比如字符串类型的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,以便在上面的示例中我只得到一个具有一个值的行(“测试”或“测试”)? ToUpper 或 ToLower 实际上会将值更改为大写或小写,而不是使用至少一个输入值,所以我不想使用这个:
group table by table.Field<string>(Column1).ToUpper() into groupedTable
【问题讨论】:
-
您最近的编辑是inappropriate,考虑到您应用它们的帖子的年龄,很可能是垃圾邮件。请停止。
标签: linq datatable dataset group-by case-insensitive