簡體   English   中英

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

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

說我有10個項目的清單。

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

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

另一種選擇是,我可以克隆列表並刪除該項目,但是然后必須將所有項目向上移動。

有沒有辦法使用Linq獲取列表?

編輯:

一個字符可以在List中多次出現。 我只希望刪除'n'處的出現。

當然,使用Where接受索引參數的重載

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

您可以使用Enumerable.Where方法。

根據謂詞過濾一系列值。

List<char> chars = new List<char>(){'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'};
var newlist = chars.Where(n => n != chars.ElementAtOrDefault(2));

這是一個DEMO

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM