多列不区分大小写的组 [英] Case insensitive group on multiple columns

查看:45
本文介绍了多列不区分大小写的组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

无论如何,有没有做类似的事情的LINQ2SQL查询:

Is there anyway to do a LINQ2SQL query doing something similar to this:

var result = source.GroupBy(a => new { a.Column1, a.Column2 });

var result = from s in source
             group s by new { s.Column1, s.Column2 } into c
             select new { Column1 = c.Key.Column1, Column2 = c.Key.Column2 };

但是忽略分组列内容的大小写吗?

but with ignoring the case of the contents of the grouped columns?

推荐答案

您可以将StringComparer.InvariantCultureIgnoreCase传递给GroupBy扩展方法.

You can pass StringComparer.InvariantCultureIgnoreCase to the GroupBy extension method.

var result = source.GroupBy(a => new { a.Column1, a.Column2 }, 
                StringComparer.InvariantCultureIgnoreCase);

或者您也可以按照 Hamlet Hakobyan 的建议在每个字段上使用ToUpperInvariant.我建议使用ToUpperInvariantToUpper而不是ToLowerToLowerInvariant,因为它已针对程序比较进行了优化.

Or you can use ToUpperInvariant on each field as suggested by Hamlet Hakobyan on comment. I recommend ToUpperInvariant or ToUpper rather than ToLower or ToLowerInvariant because it is optimized for programmatic comparison purpose.

这篇关于多列不区分大小写的组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆