我可能用错误的方式表达了这一点,但我有一个基于分割的简单List我希望第一列中的最大值.
这是代码
List<string> myString = new List<string>();
myString.Add("100.02|apples|pears");
myString.Add("22.02|apples|pears");
myString.Add("99.02|apples|pears");
myString.Add("88.02|apples|pears");
myString.Add("77.02|apples|pears");
myString.Add("66.02|apples|pears");
Run Code Online (Sandbox Code Playgroud)
我基本上拆分|然后将第一列转换为十进制.我希望获得最大的5行,这将排除22.02.我已经尝试过排序和排序,但他们不工作,因为字符串是不同的长度.
谢谢!
这将有效:
List<string> myString = new List<string>();
myString.Add("100.02|apples|pears");
myString.Add("22.02|apples|pears");
myString.Add("99.02|apples|pears");
myString.Add("88.02|apples|pears");
myString.Add("77.02|apples|pears");
myString.Add("66.02|apples|pears");
var res = myString.Select(s => new
{
num = decimal.Parse(s.Split('|')[0]),
str = s
}).OrderByDescending(g => g.num).Take(5).Select(s => s.str);
res.Dump();
Run Code Online (Sandbox Code Playgroud)
没有任何错误检查,但它给你的结果:
100.02 |苹果|梨
99.02 |苹果|梨
88.02 |苹果|梨
77.02 |苹果|梨
66.02 |苹果|梨
| 归档时间: |
|
| 查看次数: |
996 次 |
| 最近记录: |