Очень короткий вопрос. У меня есть случайный сортированный массив больших строк (100K + entries), где я хочу найти первое заполнение нужной строки. У меня есть два решения.For vs. Linq - Производительность против будущего
Из того, что я могу догадаться, что «цикл цикла» в настоящее время дает немного лучшую производительность (но этот марж всегда может измениться), но я также считаю, что версия linq более читаема. На балансе, какой метод обычно считается лучшей лучшей практикой кодирования и почему?
string matchString = "dsf897sdf78";
int matchIndex = -1;
for(int i=0; i<array.length; i++)
{
if(array[i]==matchString)
{
matchIndex = i;
break;
}
}
или
int matchIndex = array.Select((r, i) => new { value = r, index = i })
.Where(t => t.value == matchString)
.Select(s => s.index).First();
Связанный: [для vs. foreach против LINQ] (http://programmers.stackexchange.com/questions/178218/for-vs-foreach-vs-linq) – sloth
Я бы даже не использовал LINQ в этом case, так как вам действительно нужно бороться, чтобы найти индекс - я бы использовал 'Array.IndexOf' :) – Rawling
Я использую LINQ для больших данных (100k + записей, ~ 40 столбцов) без каких-либо проблем с производительностью. – Teejay