C#linq顺序取决于语言

时间:2010-06-29 08:46:05

标签: c# linq

String[] a = new String[] { "NIKE", "한글","adidas","한글Korean" };

我喜欢订购数组,한글是第一个

如果我只是订购没有选项。英文字符串始终位于顶部。

我该怎么做?

1 个答案:

答案 0 :(得分:6)

OrderBy的重载需要IComparer<string>,您可以使用Create上的静态StringComparer方法获取特定区域的其中一种文件。这样的事情应该有效:

CultureInfo ci = CultureInfo.GetCultureInfo("ko-KR"); 
bool ignoreCase = true; //whether comparison should be case-sensitive
StringComparer comp = StringComparer.Create(ci, ignoreCase);

string[] unordered = //whatever
var ordered = unordered.OrderBy(s => s, comp);