我有一个 csv 文件,需要对其进行排序。该文件如下所示:
ID Name Surname Age Salary
1 John Asben 33 1000
2 Adam Smith 22 1200
3 Amanda J 22 2000
4 George Villis 36 2300
我的代码从 csv 文件读取数据,对它们进行排序并写入另一个 csv 文件,但是当它在排序后读取和写入数据时,它只写入数据而不是标题。是否有任何解决方案可以只读取数据而不是标题,并将带有标题(ID Name Surnae Age Salary)的排序数据写入另一个文件。
科尔看起来像
private void buttonAlterSave_Click(object sender, EventArgs e)
{
var sorted =
File.ReadLines(@"C:\Users\data.csv")
.Select(line => new
{
SortKey = Int32.Parse(line.Split(',')[3]),
Line = line
})
.OrderBy(x => x.SortKey)
.Select(x => x.Line);
File.WriteAllLines(@"C:\Users\sorteddata.csv", sorted);
}
Use Skip
删除标题行以进行排序。使用Take
+ Concat
再次将标题和排序后的数据放在一起。
string[] lines = File.ReadAllLines(path);
var data = lines.Skip(1);
var sorted = data.Select(line => new
{
SortKey = Int32.Parse(line.Split(',')[3]),
Line = line
})
.OrderBy(x => x.SortKey)
.Select(x => x.Line);
File.WriteAllLines(@"C:\Users\sorteddata.csv", lines.Take(1).Concat(sorted));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)