c# - 如何对文件 txt 第 5000000 行进行排序?

标签 c# sorting

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

关于c# - 如何对文件 txt 第 5000000 行进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20661284/

相关文章:

java - 将 TreeSet 元素的顺序更改为自定义输出

python - 谁能解释为什么这种排序不起作用?

c# - 从 .NET(特别是 Windows Phone 7)调用任意 JSON 服务器的最佳方法是什么

c# - WPF ListView 项目重复

c# - 为什么 c# 中没有 "is not"关键字?

java - 对 Arraylist 对象进行排序

php - 如何重新排序这个数组?

python - 按照以下方式对字符串列表进行排序的最简单方法是什么?

c# - 控制 Web 应用程序中的浏览器前进/后退功能

c# - 给定一个未分区的 DateTime 和一个时区,我如何在 NodaTime 中构造一个瞬间?