IQueryable<SomeType> collection = GetCollection();
foreach (var c in collection)
{
//do some complex checking that can't be embedded in a query
//based on results from prev line we want to discard the 'c' object
}
//here I only want the results of collection - the discarded objects
Так что с этим простым кодом, каков наилучший способ получить результаты. Должен ли я создать список непосредственно перед foreach и вставить объекты, которые я хочу сохранить, или есть какой-то другой способ, который лучше использовать для этого типа вещей.
Я знаю, что есть другие посты на подобные темы, но я просто не чувствую, что получаю из них то, что мне нужно.
Изменить Я пробовал это
var collection = GetCollection().Where(s =>
{
if (s.property == 1)
{
int num= Number(s);
double avg = Avg(s.x);
if (num > avg)
return true;
else
return false;
}
else return false;
});
Я пытался это сделать, но мне дали "лямбда-выражение с телом оператора не может быть преобразовано в дерево выражений" при компиляции. Разве я не сделал что-то правильно?