我有这个查询
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++);
}