IEnumerable.Select with index

后端 未结 3 1073
一生所求
一生所求 2020-12-20 14:15

I have the following code:

 var accidents = text.Skip(NumberOfAccidentsLine + 1).Take(numberOfAccidentsInFile).ToArray();

where accidents i

相关标签:
3条回答
  • 2020-12-20 14:26

    May be this LINQ query will help you to find The formated name with Index:

    var accidents=(from acc in accidents
        select new {
            id=accidents.IndexOf(acc),
            Name = acc.Replace("\"", string.Empty)
        }).ToArray()
    

    or you can also use .ToList() for the case if you want result to be in IEnumerable format.

    0 讨论(0)
  • 2020-12-20 14:35

    Use Enumerable.Range to generate the ID values and then use the current value to index into your String Array:

    Enumerable.Range(0, accidents.Length).Select(f => new Accident() { Id = f, Name = accidents[f] })
    
    0 讨论(0)
  • 2020-12-20 14:40

    I'm not sure what kind of index you're looking for, but if it's just set of consecutive numbers then you're lucky. There is Select overload that does exactly that:

    return accidents.Select((t, i) => new Accident() {Id = i, Name = t.Replace("\"", string.Empty)}).ToArray();
    

    It expects a delegate that takes two parameters - the item and its index.

    0 讨论(0)
提交回复
热议问题