列表排序中,自然排序a-z,在整数方面排序挺精确,但是到了小数方面,就有小bug。以下是罗列
第一组数据:0.3 0.2 0.1 0.09 0.8 0.04 0.03 0.2 0.02 0.01
第二次遇到:.。。。0.8 0.7 .。。。 0.1 0.8 0.08 0.7 0.51 0.41 0.3 0.03 0.2
这个算法是调用windows的API,主要用于排序文件名,如果要排序数字,可以用表达式
$= {list} .OrderBy(x => Convert.ToDecimal(x)) .ToList();
我是这样用排序的:
数字1 中文jiweje
数字2 中文fjowejfeiw
。。。
数字n 中文wjeio
---------------------------------------
这样之后将头的数字去了就是我想要的中文部分的数据的排序了
有什么方法解决,保证数字的大小排列正确,又保留中文与原来数字的对应关系?
你是只想保留后面的中文部分,但是想让它们按前面的数字排序么?
$={list} .Select(x => x.Split(new char[]{' '},2)) //每一项拆分成列表 .OrderBy(x => Convert.ToDouble(x[0])) //根据前面的数字排序 .Select(x => x[1]) //返回列表的第二个部分 .ToList()
运行失败
list需要是列表变量。
O,多谢,都成功了。