且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

多列不区分大小写的组

更新时间:2023-02-04 17:39:10

您可以将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.