gpt4 book ai didi

c# - 如何让 LINQ 根据文化进行排序?

转载 作者:IT王子 更新时间:2023-10-29 04:37:44 24 4
gpt4 key购买 nike

假设我有一个包含瑞典语单词的字符串列表:bananäppleapelsindruva.

现在我想对这个列表进行排序(请记住,这是真实查询的一个非常简化的版本):

var result = from f in fruits // The list mentioned above
orderby f
select f

这将给我:apelsinäpplebanandruva。但是,根据瑞典字母表,我应该得到:apelsinbanandruvaäpple

我尝试将 System.Threading.Thread.CurrentThread.CurrentCulture 更改为 sv-SE 但这似乎并没有真正影响它。我必须编写自己的 lambda 函数并使用 .OrderBy(...) 还是我可以做其他事情来保持 LINQ 完好无损?

最佳答案

你不能用查询表达式做到这一点,但你可以用显式点符号来做到这一点:

var result = fruits.OrderBy(f => f, StringComparer.CurrentCulture);

应该这样做,假设线程的当前文化是正确的。或者:

CultureInfo culture = new CultureInfo("sv-SE");
var result = fruits.OrderBy(f => f, StringComparer.Create(culture, false));

关于c# - 如何让 LINQ 根据文化进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1846215/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com