1

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

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

4

3 回答 3

12

ConvertAllLinq 的扩展方法中的等价物称为Select!

var result = myLinkedList.Select(x => FancyCalculationWith(x))
于 2009-04-09T19:17:04.773 回答
0

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

  public class Foo
  {
    ...
  }

  public class Bar : Foo
  {
    ...
  }

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

  foreach (var foo in list.Cast<Foo>())
  {
      ...
  }
于 2009-04-09T19:42:03.200 回答
0

正如tvanfosson 所说,有可能,Cast<T>但如果你想避免,InvalidCastException你可以使用OfType<T>扩展方法,它会静默传递,列表中的项目无法转换为你提供的泛型类型参数的类型。

于 2009-04-09T19:49:19.797 回答