Как уже отмечал моряк, LINQ лениво оценивают.Размещение .LastOrDefault()
в конце вашего запроса приведет к выполнению (потому что, пытаясь получить последний элемент, он выполнит ваши Select()
), однако сделает ваш код еще хуже!
По определению, LINQ Select не должен использоваться для побочного действия.Я полагаю, вы должны видеть, что в вашем вопросе вариант 2 выглядит намного чище, чем вариант 1. Прочитав вариант 2, я легко пойму, что вы добавляете каждый элемент data
в таблицу данных.Читая вариант 1, я думаю, что вы что-то делаете с переменной data
, что было бы неправильно.
В заключение, просто придерживайтесь варианта 2. Когда производительность такая же (как этослучай), постарайтесь сделать ваш код как можно более простым для чтения.Случайный человек должен быть в состоянии получить общее представление, не читая всего этого.