我正在开发一个应用程序,其中我有一个我自己定义的类型的C#列表,它有大约5列和几行数据。特别是我有一个列类型字符串,通常包含字母数字项。
示例数据
Term Strike Strategy Volume
F15 405 STRDL 100
Z14 375 PUT 1115
A14 400 STRDL 100
Z14 vs F15 475/500 CS 200
A15-Z15 300/375 3WAY (PS) 25
我想根据Term字段的前三个字母对上面的列表进行排序,给出数字最高优先级,如上面的示例列表中所有项目编号为14,15 ..然后按字母表
结果数据应该是
Term Strike Strategy Volume
A14 400 STRDL 100
Z14 375 PUT 1115
Z14 vs F15 475/500 CS 200
A15-Z15 300/375 3WAY (PS) 25
F15 405 STRDL 100
有解决此问题的好方法吗?
答案 0 :(得分:3)
你可以使用linq:
这样写var res = theList.OrderBy(x => int.Parse(x.Term.Substring(1, 2)))
.ThenBy(x => x.Term.Substring(0, 1)).ToList();
这将返回一个新的排序列表。