通过考虑每个单元格中元素的前三个字母对列表中的列进行排序

时间:2014-09-18 17:47:33

标签: c# list sorting

我正在开发一个应用程序,其中我有一个我自己定义的类型的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

有解决此问题的好方法吗?

1 个答案:

答案 0 :(得分:3)

你可以使用linq:

这样写
var res = theList.OrderBy(x => int.Parse(x.Term.Substring(1, 2)))
                 .ThenBy(x => x.Term.Substring(0, 1)).ToList();

这将返回一个新的排序列表。