gpt4 book ai didi

C# LINQ 按错误排序

转载 作者:行者123 更新时间:2023-11-30 19:20:30 25 4
gpt4 key购买 nike

嘿嘿我认为 order by 是错误的排序。示例代码:

static void Main()
{
// Create a delicious data source.
string[] fruits = { "äax", "ääü", "äbü" };

// Query for ascending sort.
IEnumerable<string> sortAscendingQuery =
from fruit in fruits
orderby fruit //"ascending" is default
select fruit;

// Execute the query.
Console.WriteLine("Ascending:");
foreach (string s in sortAscendingQuery)
{
Console.WriteLine(s);
}
}

结果:

Ascending:
ääü
äax
äbü

正确的顺序应该是:ax阿布啊啊啊

以前有人遇到过这个错误吗?

最佳答案

这将使用 IComparer<string> 的默认实现.这是一个文化敏感的比较,我相信这就是为什么它认为“ääü”出现在“äax”之前。

您是否期待序数比较?如果是这样,您可以明确指定比较器,但不能在查询表达式中指定:

IEnumerable<string> sortAscendingQuery = fruits
.OrderBy(fruit => fruit, StringComparer.Ordinal);

如果这不是您要查找的内容,请说明您需要哪种比较。

关于C# LINQ 按错误排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6044892/

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