在C#中,从IEnumerable<Base>
转换为IEnumerable<Derived>
的方法是使用OfType
扩展方法。OfType
方法会从源集合中筛选出指定类型的元素,并返回一个新的IEnumerable<Derived>
集合。
以下是一个示例代码:
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);
}
}
}
输出结果:
Derived
在这个示例中,我们创建了一个IEnumerable<Base>
集合,其中包含一个Derived
对象和一个Base
对象。然后,我们使用OfType
方法将这个集合转换为IEnumerable<Derived>
类型,并输出其中的元素。由于只有一个Derived
对象,因此输出结果只有一个"Derived"。
需要注意的是,OfType
方法只会返回源集合中能够转换为目标类型的元素,而不是所有元素。如果源集合中有无法转换为目标类型的元素,它们将被忽略。
领取专属 10元无门槛券
手把手带您无忧上云