C#/林克 : Apply a mapping function to each element in an IEnumerable?

标签 c# linq

我一直在寻找一种使用映射函数(以 Linq 兼容的方式)将 IEnumerable 的每个元素转换为其他元素的方法,但我没有找到任何东西。

对于一个(非常简单的)例子,它应该能够做类似的事情

IEnumerable<int> integers = new List<int>() { 1, 2, 3, 4, 5 };
IEnumerable<string> strings = integers.Transform(i => i.ToString());

但是我还没有找到任何东西。我的意思是,编写实现此目的的扩展方法非常简单(基本上,它所需要的只是将源 Enumerator 包装到一个新类中,然后编写一些样板代码来委托(delegate)对它的调用),但我原以为这是一个相当基本的操作,自己编写它感觉就像重新发明轮子——我无法摆脱这样一种感觉,即可能有一种我应该使用的内置方式,而且我我们只是太盲目了,看不到它。

那么... Linq 中有什么东西可以让我执行上述操作吗?

最佳答案

您可以只使用 Select()扩展方法:

IEnumerable<int> integers = new List<int>() { 1, 2, 3, 4, 5 };
IEnumerable<string> strings = integers.Select(i => i.ToString());

或者在 LINQ 语法中:

IEnumerable<int> integers = new List<int>() { 1, 2, 3, 4, 5 };

var strings = from i in integers
              select i.ToString();

关于C#/林克 : Apply a mapping function to each element in an IEnumerable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7187409/

相关文章:

c# - 为什么不能将 `stackalloc` 表达式分配给 `Span<T>` 参数?

visual-studio - 找不到sqlmetal.exe

c# - 当对象类型在编译时未知时如何构建 LINQ 查询

c# - 在 LINQ 查询中添加 Lambda 以替换 foreach 中的一行

c# - 使用 LINQ 从 XML 文件中选择元素

c# - 如何扩展匿名类的对象

c# - 无法将类型int转换为System.Windows.Forms.Label

c# - 如何翻转字符串?

c# - 一个 ViewModel 中的两个 View (WPF/MVVM)

c# - 在 linq to EF 中,我可以创建一个动态查询来搜索用户指定的字段吗