私自身、LINQの大ファンです。簡潔さの芸術はLINQに反映されています。また、.Netでは、LINQはループの一歩先を行っている、またはLINQはループ++であると言えます。
しかし、それは本当にこの方法ですか?
私が判断力を持っているのは、このforループコードをLINQに変換しようとしたが、LINQがインデックスをスキップ/残すと混乱したためです。
double[] NMD = {3.0, 5.0, 6.0, 65.0, 34.0, 3.0, 5.0, 6.0, 65.0, 34.0, 3.0, 5.0, 6.0, 65.0, 34.0 };
for(int i=1; i<NMD.Length-1; i+=2)
NMD[i] = NMD[i]/10;
ここでは、ループをインデックス1から開始し、最後から2番目の値で停止し、値を2スキップするように要求しています。LINQでこれを実行できますか。IMOそうは思いませんが、間違っていることが証明されてうれしいです。