如何使用Linq获取除List中第n个元素之外的所有元素

Man*_*jRK 8 c# linq

说我有10个项目的清单.

List<char> chars = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'];
Run Code Online (Sandbox Code Playgroud)

我需要一个新的List,其中包含列表中除n之外的所有元素(例如,第3项'C').我不希望改变原始列表,因为我以后需要它.

另一种选择是,我可以克隆列表并删除该项目,但是然后必须将所有项目向上移动.

有没有办法使用Linq获取列表?

编辑:

一个字符可以在List中多次出现.我只希望删除'n'处的出现.

D S*_*ley 18

当然,使用它的重载Where需要一个索引参数:

var allBut3 = chars.Where((c, i) => i != 2);  // use 2 since Where() uses 0-based indexing
Run Code Online (Sandbox Code Playgroud)