我一直在寻找一种方法,使用映射函数(以Linq兼容的方式)将IEnumerable的每个元素转换为其他元素,但我还没有找到任何东西.
对于(非常简单的)示例,它应该能够做类似的事情
IEnumerable<int> integers = new List<int>() { 1, 2, 3, 4, 5 };
IEnumerable<string> strings = integers.Transform(i => i.ToString());
Run Code Online (Sandbox Code Playgroud)
但我还没有找到任何东西.我的意思是,编写一个完成它的扩展方法非常简单(基本上,它只需要将源枚举器包装到一个新类中,然后编写一些样板代码用于委托调用它),但我希望如此这是一个相当基本的操作,自己写它就像重新发明轮子一样 - 我无法摆脱可能存在我应该使用的内置方式的感觉,我只是太盲目看不到它.
那么...... Linq中有什么东西允许我做我上面描述的事情吗?
Geo*_*ett 151
您可以使用Select()扩展方法:
IEnumerable<int> integers = new List<int>() { 1, 2, 3, 4, 5 };
IEnumerable<string> strings = integers.Select(i => i.ToString());
Run Code Online (Sandbox Code Playgroud)
或者在LINQ语法中:
IEnumerable<int> integers = new List<int>() { 1, 2, 3, 4, 5 };
var strings = from i in integers
select i.ToString();
Run Code Online (Sandbox Code Playgroud)
Tim*_*oyd 25
您正在寻找Select哪些可用于转换\项目输入序列:
IEnumerable<string> strings = integers.Select(i => i.ToString());
Run Code Online (Sandbox Code Playgroud)