DDi*_*ita 3 .net c# linq sorting
看起来在使用LINQ排序时没有考虑特殊字符,我没想到它.无论如何,我需要对特殊字符进行排序,使它们首先出现在列表中.有任何想法吗?我知道我可以做类似的事情:使用LINQ进行任意排序,但是如何让sort扩展传递特殊字符:
示例列表:
丹尼尔
.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);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2950 次 |
| 最近记录: |