LINQ:如何从IQueryable <T>中删除元素

Axi*_*ili 11 c# linq iqueryable

你如何循环IQueryable并删除一些我不需要的元素.

我正在寻找这样的东西

var items = MyDataContext.Items.Where(x => x.Container.ID == myContainerId);
foreach(Item item in items)
{
  if(IsNotWhatINeed(item))
    items.Remove(item); 
}
Run Code Online (Sandbox Code Playgroud)

可能吗?提前致谢

Ant*_*ram 14

您应该能够进一步查询

var filtered = items.Where(itm => IsWhatINeed(itm));
Run Code Online (Sandbox Code Playgroud)

还要注意布尔函数的微妙变化是肯定的而不是消极的.那(负面)是not运营商的目的.

  • 有了这样一个乐观积极的功能,你也可以写`items.Where(IsWhatINeed)`. (2认同)

Fyo*_*kin 9

items = items.Where( x => !IsNotWhatINeed(x) );
Run Code Online (Sandbox Code Playgroud)