-2

I selected items from a list. How do I save their indices from the original list as well?

var originalList = new List<int>(new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 });
var selectedItems = originalList.Where(e => e > 5); // 6, 7, 8, 9, 10, 11, 12, 13

An example:

selectedItems:

  • (6, index = 5)
  • (7, index = 6)
  • (8, index = 7)
  • and so on ...
nop
  • 4,711
  • 6
  • 32
  • 93
  • 1
    Does this answer your question? [How to get index using LINQ?](https://stackoverflow.com/questions/2471588/how-to-get-index-using-linq) – Drag and Drop Nov 19 '20 at 12:20

2 Answers2

2

You have to remember indexes. It can be done via Select overload

var selectedItems = originalList
   .Select((e, index) => new { e, index })
   .Where(p => p.e > 5)
   .ToList();
Svyatoslav Danyliv
  • 21,911
  • 3
  • 16
  • 32
1

Yes, possible

var originalList = new List<int>(new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 });
var selectedItems = originalList.Select((e, i) => (e, i))
                                .Where(x => x.e > 5)
                                .Select(x => $"({x.e} , index = {x.i})") ;
Krishna Varma
  • 4,238
  • 2
  • 10
  • 25