すべて倍精度のデータのセットがあります: 100 行 20 列
次のようにして、データを IEnumerable リストに取り込みます。
var RowsOfData = File.ReadLines(dll.Globals.OutputDir + dll.Globals.filename).Select(a => a.Split(',').ToList());
var FilteredRowsToday = (from n in RowsOfData
where n[1] == 1
orderby n[0] descending
select n);
次に、データ行ごとに簡単なチェックを行い、それぞれが Bool を返す一連の関数を用意します。私が欲しいのは、各関数が真と評価された行の数です。そして、プロジェクトをスケールアップするとき、可能であればこれをできるだけ早く並行して処理したいので、試しました:
foreach (var row in FilteredRowsToday) {
is f1() true, is f2() true
etc
}
並行してやろうとしたのが遅いようです
foreach (var row in FilteredRowsToday.AsParallel())
速くない
私は今、次のようなことを考えています:
var TotalTrue = FilteredRowsToday.Select(item => f1() & f2() & f3()).Count();
データを前処理して、各関数の評価結果を一種のバイナリ グリッドとして提供できますか?
F1, f2, f3 etc
1, 0, 0 row 1
1, 1, 1 row 2 etc
提案を歓迎します!