gpt4 book ai didi

c# - LINQ 首先排序特殊字符?

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

看起来在使用 LINQ 排序时没有考虑特殊字符,我没想到会这样。无论如何,我需要对特殊字符进行排序,以便它们出现在列表的第一位。有任何想法吗?我知道我可以做类似的事情:Use LINQ for arbitrary sorting ,但我如何允许排序扩展传递特殊字符:

示例列表:

  • “测试”
  • 测试

丹尼尔

最佳答案

.Net 3.5 的一个鲜为人知的功能是您可以用 lambda 代替 IComparer。这对于需要一次性排序的情况非常方便。如果这不是一次性的,您最好使用自定义 IComparer 类。以下是您如何执行这种蛮力风格:

List<string> list = new List<string>();
list.Sort((x, y) =>
{
if(Char.IsLetterOrDigit(x[0])){
if(!Char.IsLetterOrDigit(y[0])){
// x is a letter/digit and y is not, override regular CompareTo
return -1;
}
}
else if (Char.IsLetterOrDigit(y[0]))
{
// y is a letter/digit and x is not, override regular CompareTo
return 1;
}
return x.CompareTo(y);
});

关于c# - LINQ 首先排序特殊字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1528086/

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