Преобразуйте 2 цикла foreach, которые имеют лямбда-выражения, в один или два лямбда-оператора, чтобы удалить для каждого цикла
Привет,
Мне нужно преобразовать 2 для каждого цикла, которые показаны ниже, в linq -
List<Company> res = new List<Company>(); List<EmployeeCount> result = new List<EmployeeCount>(); foreach (string s in indType) { List<Company> re = _entities.Company.Where(a => Convert.ToString(a.industry_id.ToLower()).Equals(s.ToLower().ToString())).ToList(); res.AddRange(re); } foreach (Company r in res) { List<EmployeeCount> empCount = await _entities.EmployeeCount.Where(a => Convert.ToString(a.Company_ID.ToLower()).Equals(r.Company_id.ToLower())).Select((a => new EmployeeCount() { Company_ID = a.Company_ID, Industry_ID = a.Industry_ID, Company_Name = a.Company_Name, City = a.City, Number_Employees = a.Number_Employees })).ToListAsync(); result.AddRange(empCount); } return result.AsQueryable();
Мне нужно оптимизировать эти циклы foreach с помощью лямбда-выражений, чтобы быстро получать данные. Пожалуйста, помогите мне в этом.
Что я уже пробовал:
попробовал, как показано ниже -
РЭС.По каждому элементу(я => У меня.company_id).пересекаются(_entities.Элемент employeecount.Выберите(i => i.company_id).Список();
его, показывая это возвращает список<строка&ГТ; только, мне нужен список<элемент employeecount&ГТ;. Невозможно выбрать значения объекта EmployeeCount.
F-ES Sitecore
Ваши циклы linq, вероятно, будут медленнее, чем ваш существующий код. Linq не предназначен для производительности. Если это ваша цель, то оставьте свой код как есть.