gpt4 book ai didi

c# - 使用 LINQ 读取带分隔符的文件

转载 作者:太空宇宙 更新时间:2023-11-03 20:35:09 25 4
gpt4 key购买 nike

以下 LINQ 读取带分隔符的文件。目前,它仅输出 recordId。我希望它输出文件中的所有字段,以便我可以对数据执行一些额外的 LINQ 操作。例如,我想按 recordId 分组,按日期排序,然后取 (x) 个结果。

  1. 我想要返回 csv 中的所有字段。我是否需要像对 FirstName、LastName 和 recordId 所做的那样对变量进行 decalre 并设置使用索引值?没什么大不了的,但有更好的方法吗?

  2. 我尝试删除 return 语句并使用 new 进行投影,但这没有用。

有什么建议吗?

谢谢!

var recipients = File.ReadAllLines(path)
.Select (record =>
{
string[] tokens = record.Split('|');

string FirstName = tokens[2];
string LastName = tokens[4];
string recordId = tokens[13];

return recordId;
}
)
.GroupBy (recordId => {return recordId; } )
.Dump();

最佳答案

将您的 Select() 更改为转换到包含您想要的所有属性的匿名类型:

.Select (record => 
{
string[] tokens = record.Split('|');

string FirstName = tokens[2];
string LastName = tokens[4];
string recordId = tokens[13];

return new { RecordId = recordId, FirstName, LastName };
}

你也可以重写这个更简洁:

File.ReadAllLines(path)
.Select(record => record.Split('|'))
.Select(tokens => new { RecordId = tokens[13], FirstName = tokens[2], LastName = tokens[4] })
.GroupBy(x => x.RecordId)
.Dump();

关于c# - 使用 LINQ 读取带分隔符的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5316884/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com