Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I have the following code:

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

where accidents is an array of strings.

I want to make a Linq transformation from the string array to an array of Accident objects as follows:

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

How do I retrieve the index i from the accidents array using Linq or do I have to go old school?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
554 views
Welcome To Ask or Share your Answers For Others

1 Answer

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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...