C# List泛型集合進階
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
摘要在C#中,List是一個常用的集合類型,它提供了豐富的方法和屬性,可以方便地操作列表中的元素。其中,一些常用的方法包括Find,Sort,F(xiàn)indLast,TrueForAll,Where和RemoveAll等。 Find方法用于在列表中查找特定的元素,可以使用傳遞的比較器來確定元素是否符合條件。如果找到了符合條件的元素,F(xiàn)ind方法將返回該元素,否則返回null。Find方法還支持從列表末尾開始查找元素,可以通過指定比較器的逆序參數(shù)來實現(xiàn)。 Sort方法用于對列表中的元素進行排序,可以使用默認的排序算法或者自定義的排序規(guī)則。默認的排序算法使用快速排序算法,可以在大多數(shù)情況下提供快速而穩(wěn)定的排序結果。如果要使用自定義的排序規(guī)則,可以實現(xiàn)IComparer接口并傳遞給Sort方法。 FindLast方法與Find方法類似,不同之處在于它返回列表中最后一個符合條件的元素,而不是第一個。FindLast方法同樣支持從列表末尾開始查找元素,可以通過指定比較器的逆序參數(shù)來實現(xiàn)。 TrueForAll方法用于測試列表中的所有元素是否符合特定的條件。如果所有元素都符合條件,TrueForAll方法將返回true,否則返回false。TrueForAll方法支持傳遞任意類型的參數(shù),并使用遞歸的方式對列表中的所有元素進行測試。 Where方法用于過濾列表中的元素,可以使用傳遞的謂詞來判斷元素是否符合條件。如果符合條件,Where方法將返回該元素,否則返回null。Where方法支持使用比較器、lambda表達式等多種方式來定義謂詞。 RemoveAll方法用于從列表中移除所有符合特定條件的元素。可以使用傳遞的謂詞來定義條件,然后調(diào)用RemoveAll方法。如果條件不正確,RemoveAll方法將返回false,否則返回true。RemoveAll方法同樣支持使用比較器、lambda表達式等多種方式來定義謂詞。 以上是一些常用的List方法,它們提供了豐富的功能,可以幫助我們方便地操作列表中的元素。在使用這些方法時,需要注意傳遞的參數(shù)和返回值的類型,以確保代碼的正確性和健壯性。 正文初使化List
綁這到Listbox
Find 搜索與指定謂詞所定義的條件相匹配的元素,并返回整個 List 中的第一個匹配元素。
Sort private void btnSort_Click(object sender, EventArgs e) { users.Sort((x, y) => { return x.Age - y.Age; }); full(users); }
FindAll 檢索與指定謂詞所定義的條件相匹配的所有元素 private void btnFindAll_Click(object sender, EventArgs e) { var lst = users.FindAll(x => x.Country == "蜀"); full(lst); }
FindLast 搜索與指定謂詞所定義的條件相匹配的元素,并返回整個 List 中的最后一個匹配元素。 private void btnFindLast_Click(object sender, EventArgs e){ var option = new JsonSerializerOptions() { Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping }; var ret = users.FindLast(x => x.Country == "蜀"); txtJson.Text = System.Text.Json.JsonSerializer.Serialize(ret, option); }
Where 檢索與指定謂詞所定義的條件相匹配的所有元素。 private void btnWhere_Click(object sender, EventArgs e) { var ret = users.Where(x => x.Age > 40).ToList(); full(ret); }
TrueForAll 確定是否 List 中的每個元素都與指定的謂詞所定義的條件相匹配。 private void btnTrueForAll_Click(object sender, EventArgs e) { var ret = users.TrueForAll(x => x.Name == "蜀"); MessageBox.Show(ret.ToString()); ret = users.TrueForAll(x => x.Age>10); MessageBox.Show(ret.ToString()); } Take 獲得前n行 返回值為IEnumetable<T>,T的類型與List<T>的類型一樣 private void btnTake_Click(object sender, EventArgs e) { var ret = users.Take(2).ToList(); full(ret); }
RemoveAll private void btnRemoveAll_Click(object sender, EventArgs e) { var ret = users.RemoveAll(x => { if (x.Age > 30) { return true; } return false; }); MessageBox.Show("刪除了" + ret.ToString() + "條記錄"); full(users); } 該文章在 2024/2/19 18:14:09 編輯過 |
關鍵字查詢
相關文章
正在查詢... |