> 下記のような方法以外に、良い方法があれば、ご享受下さい > > var data = int[]{1,3,6,10,15}; > var s = new List<int>(); > var tmp =0; > foreach (var e in data a) > { > tmp +=e; > s.Add(t); > } > >
無理やりですが
こんなのはどうでしょうか?
eだとイベント引数と被るのでelに変更
先頭データであるか判断する為Enumerable.Randeで配列のインデックスに
よるLINQループ(この表現が合っているかは分かりません)
qryが何度評価されてもよいように先頭データのときはsをelにして
それ以降は足し算をして合計値を設定するようにしています。
var data = new int[] { 1, 2, 3, 4, 5 };
var s=0;
var qry = (from i in Enumerable.Range(0, data.Length)
let el = data[i]
select s = (i==0 ? el : s + el));
foreach (var el in qry)
{
Console.WriteLine(el);
}