我有一个500000行的困惑文件,其信​​息和日期如下:

for instance          desired Result
------------          ---------------
 723,80                1,4
 14,50                 1,5
 723,2                 10,8
 1,5                   14,50
 10,8                  723,2
 1,4                   723,80

现在我该如何实现这样的事情?

我尝试了sortedList和sorteddictionary方法,但是由于列表中有一些重复的值,因此无法在列表中实现新值。
如果您建议最好的方法,我将不胜感激。

还有一件事,我已经看到了这个问题,但是当我使用File时,这个问题使用了该类!

C# List<> Sort by x then y

最佳答案

var result = File.ReadAllLines("...filepath...")
                 .Select(line => line.Split(','))
                 .Select(parts => new
                 {
                     V1 = int.Parse(parts[0]),
                     V2 = int.Parse(parts[1])
                 })
                 .OrderBy(v => v.V1)
                 .ThenBy(v => v.V2)
                 .ToList();

默认情况下,重复项将得到正确处理。如果要删除它们,请在某处添加.Distinct(),例如ReadAllLines之后。

09-25 20:56