按C记录范围对C#中的传入文本数据文件进行排序

时间:2016-01-16 22:37:00

标签: c# sorting

我有一个文件(用于在文本框中显示)。

var lines = new []
{
    "123465.xxx.20150115",
    "123465.xxx.20150222",
    "999999.xxx.20150120",
}; 

我无法影响我收到它的排序顺序。但是,我想从第12列到第19列,然后是第1列到第6列(按日期,然后按数字排序) - 按相反顺序排序。

目前我在创建新文件的文件上调用DOS排序(.bat),但必须有一种方法可以在C#中进行排序。

我想在文本框中对其进行排序或加载数组,对其进行排序,然后加载文本框。

1 个答案:

答案 0 :(得分:0)

试试这个:

var lines = new []
{
    "123465.xxx.20150115",
    "123465.xxx.20150222",
    "999999.xxx.20150120",
}; 

var sorted =
    lines
        .OrderByDescending(l => l.Substring(11, 8) + l.Substring(0, 6))
        .ToArray();

由于字符串索引是基于0的,因此.Substring(11, 8)会为您提供“第12列到第19列”& .Substring(0, 6)为您提供“第1列至第6列”。

我得到了这个结果:

sorted