Pythonを使っているとmap
というリストの操作が便利です。
>>> a = list(range(5))
>>> a
[0, 1, 2, 3, 4]
>>> list(map(lambda e: e*2+1, a))
[1, 3, 5, 7, 9]
C#でもこれと同じようなことができないかと探してみたところ、LINQのSelect
を使って同じような感じのコードが書けるみたいです。
using System;
using System.Linq;
public class Example
{
static public void Main ()
{
int[] a = new int[]{ 0, 1, 2, 3, 4 };
a = a.Select(e => e * 2 + 1).ToArray();
foreach(int v in a) {
Console.WriteLine(v);
}
}
}
実行結果
1
3
5
7
9
リンク
ruby – C# Array Map/Collect – Stack Overflow
https://stackoverflow.com/questions/2285496/c-sharp-array-map-collect