我有一个英语和韩语单词列表,我试图对其进行排序,以便韩语单词首先排序,英语单词最后排序。
这篇文章正是我的问题:C# linq order by dependent on Language
但是,我无法让它在我的 .NET 4.7.2 MVC 应用程序中工作。我使用了这篇文章中完全相同的代码:
string[] stringArray = new string[] { "NIKE", "한글", "adidas", "한글Korean" };
CultureInfo ci = CultureInfo.GetCultureInfo("ko-KR");
StringComparer comp = StringComparer.Create(ci, true);
var ordered = stringArray.OrderBy(s => s, comp);
var output = string.Join(", ", ordered.ToArray());
"在我的 4.7.2 应用程序中,输出“adidas, NIKE, 한글, 한글Korean”,这不是我想要的。
\n""我很困惑为什么这不起作用,所以我尝试了 .NET 8 控制台应用程序,并使用完全相同的代码片段,输出是“한글,한글Korean,adidas,NIKE”,这正是我想要的。 "
我发现这个文档提到了从 .NET 5 开始的全球化变化,我怀疑这是造成这种情况的原因,尽管我不完全确定解决这个问题的解决方案是什么,而无需编写自定义内容:https:// learn.microsoft.com/en-us/dotnet/core/extensions/globalization-icu
是否有解决方案可以在 4.7.2 中使用,将英语单词放在最后,而不必编写自定义内容?
只是一个建议: 如果将数组拆分为 en-us 和 ko-KR 单独的数组,然后在最后排序并绑定会怎么样?