我有一个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
之后。