AsEnumerable , OfType , Cast 区别

本文详细介绍了LINQ中Enumerable.AsEnumerable<TSource>、OfType<TResult>和Cast<TResult>三个方法的用途和区别。AsEnumerable用于在基类实现IEnumerable<T>时执行基本方法;OfType仅保留集合中指定类型的对象;而Cast则尝试将所有元素转换为目标类型,遇到无法转换的元素会抛出异常。
摘要由CSDN通过智能技术生成


一、Enumerable.AsEnumerable<TSource> 方法

            https://msdn.microsoft.com/zh-cn/library/bb335435%28v=vs.110%29.aspx

            当实现类与基类都有相同的方法时( 基类是实现了 IEnumerable<T> ),要执行基本的方法,用 AsEnumerable 

          

    class AsEnumerableTest<T> : List<T>
    {
        public void Where(Func<T, bool> func)
        {
            Console.WriteLine("AsEnumerableTest 的 Where 方法");
        }
    }
        public static void AsEnumerable()
        {
            AsEnumerableTest<int> q = new AsEnumerableTest<int>() { 1, 2, 3, 4 };
            q.Where(r => r < 3); 

            var v = q.AsEnumerable().Where(r => r < 3);
            Console.WriteLine(v.Count());
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值