私はこのクエリを持っています
Dasha.Where(x => x[15] == 9).ForEachWithIndex((x,i) => dd[Sex[i]][(int)x[16]]++);
このクエリはDasha
、15番目のインデックス値が9である要素を検索し、はいの場合、dd [Dashaindex][x[16]]値をインクリメントします。
ここで、Dashaはdouble[100][50]
、ddはdouble[2][10]
、Sexはbyte []であり、値は0または1のみです。男性の場合は0、女性の場合は1です。
x [15]は、0から9(両方を含む)の間でのみ可能です。x[16]についても同じルール。
それは私に正しい結果を与えています。
これを最適化してみました
Dasha.ForEachWithIndex((x,i) =>
{
if(x[15] == 9)
dd[Sex[i]][(int)x[16]]++
});
これは私に間違った結果を与えています。どこが間違っているのですか?
私ForEachWithIndex
は
static void ForEachWithIndex<T>(this IEnumerable<T> enu, Action<T, int> action)
{
int i = 0;
foreach(T item in enu)
action(item, i++);
}