如何将列表映射到另一个列表,如函数式编程语言?

Joh*_*ood 0 c# mapping

我经常面临的问题是将列表的元素转换为另一个列表,并转换相同的元素.例:

List<string> numbers = ...;
List<int> parsedNumbers = new List<int>();
foreach(var n in numbers)
  parsedNumbers.Add(parse(n));
Run Code Online (Sandbox Code Playgroud)

是否有可能在C#中以另一种更简单的方式进行映射?有点像numbers.Map(x -> parse(x)).

I4V*_*I4V 6

var parsedNumbers = numbers.Select(n=>int.Parse(n)).ToList();
Run Code Online (Sandbox Code Playgroud)

您也可以使用List的ConvertAll方法.

var parsedNumbers = numbers.ConvertAll(n => int.Parse(n));
Run Code Online (Sandbox Code Playgroud)

和更短的版本

var parsedNumbers = numbers.Select(int.Parse).ToList();
var parsedNumbers = numbers.ConvertAll(int.Parse);
Run Code Online (Sandbox Code Playgroud)