链接列表没有ConvertAll <t>?</t>

时间:2009-04-09 19:15:20

标签: c# .net vb.net linked-list converter

有没有人有一种扩展方法可以使用LinkedList<T>快速转换Converter<TInput, TOutput>中的类型?

我有点惊讶,ConvertAll<TOutput>(delegate)在哪里?

3 个答案:

答案 0 :(得分:12)

Linq扩展方法中的ConvertAll等效项称为Select

var result = myLinkedList.Select(x => FancyCalculationWith(x))

答案 1 :(得分:0)

取决于你想要从中得到什么,但你可以使用Cast然后通过生成的IEnumerable进行枚举。

  public class Foo
  {
    ...
  }

  public class Bar : Foo
  {
    ...
  }

  var list = new LinkedList<Bar>();
  .... make list....

  foreach (var foo in list.Cast<Foo>())
  {
      ...
  }

答案 2 :(得分:0)

作为tvanfosson says可以Cast<T>,但是如果你想避免使用InvalidCastException,你可以使用OfType<T>扩展方法,该方法将默默传递并且无法转换为您提供的泛型类型参数类型的列表。