У меня есть этот запросКак оптимизировать этот LINQ запрос
Dasha.Where(x => x[15] == 9).ForEachWithIndex((x,i) => dd[Sex[i]][(int)x[16]]++);
Этот запрос находит этот элемент в Dasha
которого пятнадцатого значение индекса является 9 и если да, то он увеличивает дд [Dashaindex] [х [16]] значение ,
Здесь Даша double[100][50]
и дд это double[2][10]
и секс байт [] и может иметь только значение 0 или 1. 0 для мужчин и 1 для женщин
х [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++);
}
Что вы пытаетесь оптимизировать? Скорость выполнения? Легкость чтения кода? Минимальное количество символов? Какой бы ни был ответ, пожалуйста, дайте небольшое объяснение обоснованию. Наши ответы могут меняться в зависимости от того, почему вы хотите оптимизировать. –
Поскольку существует 2 метода (Where and ForEachIndex). Я хочу, чтобы одна функция выполняла эту работу. так что ему не нужно перебирать два массива. сначала выведенный где и второй для обновления Foreachwithindex –
Это из-за 'Delayed Execution' –