DOSEIの日記

技術メモ+日常ログ

配列の一括変換

C++ には、 STL の algorithm に各要素に一括で関数を適用する for_eachtransform があるのだが*1C# にはなさげ。こういうときは、 LINQ を使って、

var Y = (from x in X select f(x)).toArray();

とか書けばよし。しかも、 UnaryFunction みたいな縛りはなし。しかも、読みやすい。

*1:前者は関数を呼ぶだけで戻り値は使わない。後者は、戻り値を格納する場所を指定できる。自分自身を上書きすることもできる。