LinkedList没有 ConvertAll?

发布于 2024-07-16 11:10:43 字数 188 浏览 4 评论 0原文

有没有人有扩展方法可以使用 Converter 快速转换 LinkedList 中的类型?

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

Does anyone have an extension method to quickly convert the types in a LinkedList<T> using a Converter<TInput, TOutput>?

I'm a bit surprised, where is the ConvertAll<TOutput>(delegate)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

浮世清欢 2024-07-23 11:10:43

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

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

The ConvertAll equivalent in extension methods for Linq is called Select!

var result = myLinkedList.Select(x => FancyCalculationWith(x))
无可置疑 2024-07-23 11:10:43

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

  public class Foo
  {
    ...
  }

  public class Bar : Foo
  {
    ...
  }

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

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

Depends on what you want to get out of it, but you can use Cast then enumerate through the resulting IEnumerable.

  public class Foo
  {
    ...
  }

  public class Bar : Foo
  {
    ...
  }

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

  foreach (var foo in list.Cast<Foo>())
  {
      ...
  }
甜柠檬 2024-07-23 11:10:43

正如tvanfosson所说,可以Cast但如果您想避免 InvalidCastException 您可以使用 OfType扩展方法将默默地传递列表中未能转换为您提供的泛型类型参数的类型的项目。

As tvanfosson says it is possible to Cast<T> but if you want to avoid an InvalidCastException you can use the OfType<T> extension method which will silently pass over and items in the list that fail the conversion to the type of the generic type parameter you supply.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文