1. 程式人生 > >C# .Net List<T>中Remove()、RemoveAt()、RemoveRange()、RemoveAll()的區別,List<T>刪除匯總

C# .Net List<T>中Remove()、RemoveAt()、RemoveRange()、RemoveAll()的區別,List<T>刪除匯總

contains ret 一個 成功 con sde edi ont div

在List<T>中刪除主要有Remove()、RemoveAt()、RemoveRange()、RemoveAll()這幾個方法。下面一一介紹使用方法和註意點。

我們以List<string>舉例

var strList = new List<string> { "aa", "ba", "cc", "dd", "ee", "ff" };

一、Remove()刪除List中匹配到的第一個項,參數為List<T>中的T,返回類型為bool,成功刪除返回True,失敗或者沒有找到返回False。例如:

var rt =  strList.Remove("
aa");

二、RemoveAt()刪除指定索引的一項。參數為int ,表示索引。返回類型為void。例如:

strList.RemoveAt(0);

三、RemoveRange()刪除指定索引段的項,第一個參數為刪除的起始索引,第二個參數為刪除的個數。範圍類型為void。例如:

strList.RemoveRange(0, 2);

四、RemoveAll()刪除所有匹配到的項,參數是一個Predicate<T> 委托,用於定義要刪除的元素應滿足的條件。返回類型為int型,表示刪除的個數。例如:

//拉姆達表達式
var rt = strList.RemoveAll(j=>j.Contains("
a")); //自定義條件 private static bool IsDel(string str) { return str.Contains("a"); } var rt = strList.RemoveAll(IsDel);

C# .Net List<T>中Remove()、RemoveAt()、RemoveRange()、RemoveAll()的區別,List<T>刪除匯總