C# List泛型集合进阶
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
摘要在C#中,List是一个常用的集合类型,它提供了丰富的方法和属性,可以方便地操作列表中的元素。其中,一些常用的方法包括Find,Sort,FindLast,TrueForAll,Where和RemoveAll等。 Find方法用于在列表中查找特定的元素,可以使用传递的比较器来确定元素是否符合条件。如果找到了符合条件的元素,Find方法将返回该元素,否则返回null。Find方法还支持从列表末尾开始查找元素,可以通过指定比较器的逆序参数来实现。 Sort方法用于对列表中的元素进行排序,可以使用默认的排序算法或者自定义的排序规则。默认的排序算法使用快速排序算法,可以在大多数情况下提供快速而稳定的排序结果。如果要使用自定义的排序规则,可以实现IComparer接口并传递给Sort方法。 FindLast方法与Find方法类似,不同之处在于它返回列表中最后一个符合条件的元素,而不是第一个。FindLast方法同样支持从列表末尾开始查找元素,可以通过指定比较器的逆序参数来实现。 TrueForAll方法用于测试列表中的所有元素是否符合特定的条件。如果所有元素都符合条件,TrueForAll方法将返回true,否则返回false。TrueForAll方法支持传递任意类型的参数,并使用递归的方式对列表中的所有元素进行测试。 Where方法用于过滤列表中的元素,可以使用传递的谓词来判断元素是否符合条件。如果符合条件,Where方法将返回该元素,否则返回null。Where方法支持使用比较器、lambda表达式等多种方式来定义谓词。 RemoveAll方法用于从列表中移除所有符合特定条件的元素。可以使用传递的谓词来定义条件,然后调用RemoveAll方法。如果条件不正确,RemoveAll方法将返回false,否则返回true。RemoveAll方法同样支持使用比较器、lambda表达式等多种方式来定义谓词。 以上是一些常用的List方法,它们提供了丰富的功能,可以帮助我们方便地操作列表中的元素。在使用这些方法时,需要注意传递的参数和返回值的类型,以确保代码的正确性和健壮性。 正文初使化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 编辑过 |
关键字查询
相关文章
正在查询... |