狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

C# List泛型集合進階

admin
2024年2月19日 18:14 本文熱度 661

摘要


在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方法用于從列表中移除所有符合特定條件的元素。可以使用傳遞的謂詞來定義條件,然后調用RemoveAll方法。如果條件不正確,RemoveAll方法將返回false,否則返回true。RemoveAll方法同樣支持使用比較器、lambda表達式等多種方式來定義謂詞。

以上是一些常用的List方法,它們提供了豐富的功能,可以幫助我們方便地操作列表中的元素。在使用這些方法時,需要注意傳遞的參數(shù)和返回值的類型,以確保代碼的正確性和健壯性。

正文


初使化List

public class User{    public string Name { get; set; }    public int Age { get; set; }    public string Country { get; set; }}

List<User> users = new List<User>();private void btnInit_Click(object sender, EventArgs e){    users.Clear();    users.Add(new User() { Name = "張飛", Age = 24, Country = "蜀" });    users.Add(new User() { Name = "劉備", Age = 24, Country = "蜀" });    users.Add(new User() { Name = "黃蓋", Age = 24, Country = "吳" });    users.Add(new User() { Name = "曹操", Age = 24, Country = "魏" });    users.Add(new User() { Name = "董卓", Age = 24, Country = "漢" });    full(users);}


綁這到Listbox

public void full(List<User> lst){     lstData.Items.Clear();     for (int i = 0; i < lst.Count; i++)     {         lstData.Items.Add(lst[i].Name+" " + lst[i].Age.ToString());     }}

Find

搜索與指定謂詞所定義的條件相匹配的元素,并返回整個 List 中的第一個匹配元素。

private void btnFind_Click(object sender, EventArgs e){    //默認模式下對HTML敏感字符是不轉義的,防止造成WEB安全問題,僅允許UnicodeRanges.BasicLatin的編碼,    //需要對中文也轉義的話,則需要指定JsonSerializerOptions的Encoder    var option = new JsonSerializerOptions()    {        Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping    };    var lst = users.Find(x => x.Name == "張飛");
   //這個寫法是一樣的    var lst1 = users.Find(x =>    {        if (x.Name == "張飛")        {            return true;        }        return false;    });        Json.Text=System.Text.Json.JsonSerializer.Serialize(lst,option);}

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 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業(yè)務管理,結合碼頭的業(yè)務特點,圍繞調度、堆場作業(yè)而開發(fā)的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統(tǒng),標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved