我有以下代码:
var accidents = text.Skip(NumberOfAccidentsLine + 1).Take(numberOfAccidentsInFile).ToArray();
事故是一系列字符串。
我想从字符串数组到Accident对象数组进行Linq转换,如下所示:
return accidents.Select(t => new Accident() {Id = i, Name = t.Replace("\"", string.Empty)}).ToArray();
如何使用Linq从事故阵列中检索索引i还是我必须上学?
答案 0 :(得分:15)
我不确定你正在寻找什么样的索引,但如果它只是连续数字的集合那么你很幸运。有Select
重载就是这样:
return accidents.Select((t, i) => new Accident() {Id = i, Name = t.Replace("\"", string.Empty)}).ToArray();
它需要一个带有两个参数的委托 - 项目及其索引。
答案 1 :(得分:1)
使用Enumerable.Range生成ID值,然后使用当前值索引到String数组中:
Enumerable.Range(0, accidents.Length).Select(f => new Accident() { Id = f, Name = accidents[f] })
答案 2 :(得分:0)
可能这个LINQ查询将帮助您找到带索引的格式名称:
var accidents=(from acc in accidents
select new {
id=accidents.IndexOf(acc),
Name = acc.Replace("\"", string.Empty)
}).ToArray()
如果您希望结果为IEnumerable格式,也可以使用.ToList()
。