фильтровать объекты (список <Foo>), принадлежащие объекту - PullRequest
1 голос
/ 29 ноября 2010

Теперь я хочу вернуть последовательность того списка X, который является его prop1.where (p => p.a == 1). Я могу написать это с предложением Select, но у моего объекта много свойств.

как-то так (но в истинном синтаксисе):

ctx.MyObject.Where(p=>p.state==1 && prop1.where(p=>p.a==1));

РЕДАКТИРОВАТЬ: obj1 с этим реквизитом (int a, List<Foo> prop1) и Foo имеет (int b, int c).

1 Ответ

3 голосов
/ 29 ноября 2010

В зависимости от того, что вы хотите сделать, попробуйте Any вместо Where:

ctx.MyObject.Where(p=>p.state==1 && prop1.Any(p2 => p2.a == 1))

Или, как вы упомянули, вы можете использовать Select:

ctx.MyObject
   .Where(p => p.state == 1)
   .Select(p => new
       {
           state = p.state,
           prop1 = p.prop1.Where(p2 => p2.a == 1),
           // other fields...
       }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...