OfType 和Cast的区别

ArrayList arrayList = new ArrayList { "First", "Second", "Third" };
IEnumerable<string> strings = arrayList.Cast<string>();
foreach (var item in strings)
{
  Console.WriteLine(item);
}
arrayList = new ArrayList { 1, "not an int", 2 };
IEnumerable<int> ints = arrayList.OfType<int>();
foreach (var item in ints)
{
  Console.WriteLine(item);
}

输出结果

从输出结果我们可以看到,使用Cast方法时,arraylist的三个元素全都被打印出来了,

但是在使用OfType时,只有数组1和2被打印了出来。

是因为Cast只能处理和自己委托类型一样的元素,否则就会抛出异常,而OfType则会剔除和委托类型不一样的元素,将其他类型一样的元素打印出来

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值