在每个数组元素上执行函数,将结果返回到新数组

Dan*_*Dan 3 .net c# linq arrays

我在这里是一个完整的Linq新手,请原谅我一个可能非常简单的问题.

我想对数组中的每个元素执行一个操作,并将每个操作的结果返回给一个新数组.

例如,假设我有一个数组或一个函数ToWords(),它将数字转换为它们的单词等价物,我希望能够传入数字数组,对每个元素执行ToWords()操作,并传递出去一个字符串[]

我知道这完全有可能以一种稍微冗长的方式,但在我的Linq冒险中,我想知道它是否可以在一个漂亮的单行中使用.

p.s*_*w.g 7

这很直接.只需使用Select方法:

var results = array.Select(ToWords).ToArray();
Run Code Online (Sandbox Code Playgroud)

请注意,除非您需要阵列,否则无需致电ToArray.大多数情况下,您可以IEnumerable<string>轻松地使用延迟评估.


Bot*_*000 6

您可以使用Select()将一个序列转换为另一个序列,并ToArray()从结果中创建一个数组:

int[] numbers = { 1, 2, 3 };
string[] strings = numbers.Select(x => ToWords(x)).ToArray();
Run Code Online (Sandbox Code Playgroud)