1. 程式人生 > >C#解決Linq OrderBy() 失效的小技巧

C#解決Linq OrderBy() 失效的小技巧

服務 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() 失效的小技巧