Case insensitive group on multiple columns

前端 未结 4 836
Happy的楠姐
Happy的楠姐 2021-01-17 10:14

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

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

4条回答
  •  猫巷女王i
    2021-01-17 10:41

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

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

    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.

提交回复
热议问题