首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C#无法从IEnumerable <Base>转换为IEnumerable <Derived>

在C#中,从IEnumerable<Base>转换为IEnumerable<Derived>的方法是使用OfType扩展方法。OfType方法会从源集合中筛选出指定类型的元素,并返回一个新的IEnumerable<Derived>集合。

以下是一个示例代码:

代码语言:csharp
复制
using System;
using System.Collections.Generic;

class Base { }
class Derived : Base { }

class Program
{
    static void Main()
    {
        IEnumerable<Base> baseList = new List<Base> { new Derived(), new Base() };

        // 使用OfType方法将IEnumerable<Base>转换为IEnumerable<Derived>
        IEnumerable<Derived> derivedList = baseList.OfType<Derived>();

        foreach (Derived item in derivedList)
        {
            Console.WriteLine(item.GetType().Name);
        }
    }
}

输出结果:

代码语言:txt
复制
Derived

在这个示例中,我们创建了一个IEnumerable<Base>集合,其中包含一个Derived对象和一个Base对象。然后,我们使用OfType方法将这个集合转换为IEnumerable<Derived>类型,并输出其中的元素。由于只有一个Derived对象,因此输出结果只有一个"Derived"。

需要注意的是,OfType方法只会返回源集合中能够转换为目标类型的元素,而不是所有元素。如果源集合中有无法转换为目标类型的元素,它们将被忽略。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券