编辑
2025-02-04
C# 应用
00
请注意,本文编写于 91 天前,最后修改于 91 天前,其中某些信息可能已经过时。

目录

摘要
正文

摘要

在C#中,LINQ(Language Integrated Query)提供了强大的查询能力,允许我们以声明式的方式处理和查询数据集合。在处理类型多样化的集合时,OfType<T>() 方法和使用 case 语句在查询中进行类型过滤或转换变得十分有用。这两种方法可以帮助我们在LINQ查询中处理不同类型的元素。

正文

Cast执行一个集合的元素的转换到一个指定类型使用显式类型范围变量。例如:从str在字符串String中
OfType在它们的基础上过滤值,这取决于它们的能力,以被转换为特定类型
C#
private void btnSearch_Click(object sender, EventArgs e) { ArrayList al = new ArrayList(); al.Add(1); al.Add(2); al.Add(3); IEnumerable<int> ret = al.Cast<int>();//非泛型转泛型 foreach (var item in ret) { lstMain.Items.Add(item); } }

Cast操作符用于将一个类型为IEnumerable的集合对象转换为IEnumerable<T>类型的集合对象。

C#
private void btnSearch_Click(object sender, EventArgs e) { ArrayList al = new ArrayList(); al.Add(1); al.Add(2); al.Add("a"); IEnumerable<int> ret = al.OfType<int>();//非泛型转泛型 foreach (var item in ret) { lstMain.Items.Add(item); } }

OfType操作符与Cast操作符类似,用于将类型为IEnumerable的集合对象转换为IEnumerable<T>类型的集合对象。不同的是,Cast操作符会视图将输入序列中的所有元素转换成类型为T的对象,,如果有转换失败的元素存在Cast操作符将抛出一个异常;而OfType操作符仅会将能够成功转换的元素进行转换,并将这些结果添加到结果序列中去。与Cast操作符相比,OfType操作符更加安全。

image.png

本文作者:rick

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!