У меня есть запрос, который я хочу substitue в foreach
с LINQ, потому что foreach
настолько медленно , как я могу написать все это codein один запрос это мой код:Foreach заменить в Linq
ret = new List<ReportData>();
foreach (var item in Number)
{
string A = item.Substring(0, 11);
string B = item.Substring(14, 2);
string C = item.Substring(19, 11);
string D = item.Substring(33);
ret1 = (from a in Report
where a.A == A && a.B == B && a.C == C && a.D == D && Filter.Type.Contains(a.Y)
select new ReportData
{
X = a.X,
Y = a.Y,
});
if (ret1 != null && ret1.ToList().Count > 0)
{
ret.AddRange(ret1);
}
}
что 'Number'? Кроме того, LINQ не сделает ваш код быстрее, просто не жадным (память). – HimBromBeere
В настоящее время ваш код сохраняет результат только от последнего элемента в 'Number'. – juharr
Поскольку вы переписываете 'ret' на каждом проходе цикла foreach, вы можете сохранить ту же функциональность и сделать это намного быстрее, только обработав последний элемент странно названного' Number'. –