C#解決Linq OrderBy() 失效的小技巧
阿新 • • 發佈:2017-05-22
服務 class team keyword 解決 asc rip param 正常
前言
前幾天的一個數據列表中我用了Linq GroupBy 和OrderBy。 排序在本機正常使用,發到測試後排序死活不對,很是郁悶,總以為是程序問題。於是請教了另外一個同事。有了以下的答案。
問題原因和解決方法
因為服務器裝的是英文版操作系統,沒有中文包,所以碰見中文排序無法識別,所以使用OrderBy時需要單獨處理下。
CultureInfo culture = CultureInfo.GetCultureInfo("zh-cn");
List<TeamDto> teamDtos = teams
.GroupBy(x => new
{
x.TestId,
x.TestName
})
.Select(g => new TeamDto()
{
TestID = g.Key.TestId,
Test = g.Key.TestName,
Teams = g.ToList()
})
.OrderBy(t=>t.Test,StringComparer.Create(culture,true))
.ToList();
C#解決Linq OrderBy() 失效的小技巧