Как конвертировать этот цикл в Linq.js или просто linq
Мой код написан на JavaScript
for (var i = 0; i < tsUA.length; i++) {
if (tsRU[i][0] === tsUA[i][0])
tsUA[i][2] = tsRU[i][1];
}
желательно с помощью firstOrDefault
1 ответ
Решение
В C# LINQ вы можете сделать это:
var query = tsUA.Zip(tsRU, (ua, ru) => new { ua, ru })
.Where(p => p.ua[0] == p.ru[0]);
foreach (var pair in query)
pair.ua[2] = pair.rs[1];
Обратите внимание, что здесь не так много "LINQ", вы модифицируете объекты. LINQ не предназначен для этого. И ваш запрос на использование FirstOrDefault()
нет смысла, здесь нет места.
Как вы, наверное, заметили, вы не сильно выигрываете от использования LINQ здесь. Кроме того, хранение ваших объектов в виде массивов делает его менее читабельным. Почему бы не создать надлежащие объекты для представления ваших данных?