以下LINQ读取分隔文件.目前,它只输出recordId.我希望它输出文件中的所有字段,以便我可以对数据执行一些额外的LINQ操作.例如,我想按记录ID分组,按日期排序,并取(x)个结果.
我希望返回csv中的所有字段.我是否需要对变量进行decalre并设置使用索引值,就像我对FirstName,LastName和recordId所做的那样?没什么大不了但有更好的方法吗?
我尝试删除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();
Run Code Online (Sandbox Code Playgroud)
将您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 };
}
Run Code Online (Sandbox Code Playgroud)
你也可以重写这个更多的succint:
File.ReadAllLines(path)
.Select(record => record.Split('|'))
.Select(tokens => new { RecordId = tokens[13], FirstName = tokens[2], LastName = tokens[4] })
.GroupBy(x => x.RecordId)
.Dump();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1211 次 |
| 最近记录: |