Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get all elements except the n'th element in a List using Linq

Tags:

c#

linq

Say I have a list of 10 items.

List<char> chars = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'];

I need a new List containing all the elements in the List except n'th (say, 3rd item 'C'). I don't want the original list to be altered since I need it later.

Another option is, I can clone the list and remove the item, but then all the items after the n'th has to be shifted up.

Is there a way to get the list using Linq?

Edit:

A character can occur multiple times in the List. I want only the occurance at 'n' to be removed.

like image 324
ManojRK Avatar asked Apr 15 '13 13:04

ManojRK


1 Answers

Sure, using the overload of Where that takes an index parameter:

var allBut3 = chars.Where((c, i) => i != 2);  // use 2 since Where() uses 0-based indexing
like image 199
D Stanley Avatar answered Oct 09 '22 20:10

D Stanley