5 万行を超えるデータセットがあります。最初の 50 の値の平均、次に 2 番目の 50 の値などを取得することにしました (50 の値グループの平均を持つデータセットの半分を取得するため)。
これが私のコードです:
var Rate = (from dr in ds.Tables[0].AsEnumerable()
select new
{
rate = dr.Field<double>(columnName)
}.rate).ToList();
if (Rate.Count > 50)
{
var avg = Rate.CheckRateValue();
}
そして、これが私の拡張メソッドのコードです:
public static IEnumerable<double> CheckRateValue(this IEnumerable<double> values)
{
int i = 1;
int j = 0;
for (; i < values.Count(); )
{
yield return values.Skip(j * 2).Take(2).Average();
i = i + 2;
j++;
}
}
問題 : 正常に動作しますが、遅いです。スピードアップする方法について何か提案はありますか?