我在這裏苦苦尋找LINQ語法......我想我會在這裏拋棄它。我找不到我正在尋找的其他地方。LINQ:選擇對象不包含來自列表中的項目的位置
OK,說我有這樣的:
public class Bar
{
public int BarId { get; set; }
}
public class Foo
{
public List<Bar> BarList { get; set; }
}
List<Foo> fooBunch = GetABunchOfFoos(); //let's just assume I'm getting more than one
List<Foo> fooSelect = new List<Foo>;
List<Bar> filterBars = GetAFewBars(); //assume I'm getting like 2 or 3
fooSelect = (from f in fooBunch
where !(from b in f.BarList select b.BarId).Contains(ITEM FROM filterBars.BarId)
select f).ToList();
所以,長話短說我想使用LINQ過濾掉我的基礎上從另一個列表中的對象的對象列表。我希望這是有道理的。我想我只是迷失在Contains部分......我不知道該怎麼寫。
這是非常接近...竅門是從動態狀態創建rejectList。這將更像是我在哪裏> i.Status(列表)。我可以做那樣的事嗎?基本上我猜想另一個LINQ聲明? –
farina
2011-04-12 19:23:40
當然,要構建rejectList,你只需要設計一個方法來獲得你不想要的拒絕列表。 例如:'var rejectList = fullList.Where(i => rejectStatuses.Contains(i.Status));' 我將更新我的原始答案以反映此更改。 – Thebigcheeze 2011-04-12 19:36:32
我會如何在一行中做到這一點?我知道這可能是不可能的。 – JustJohn 2016-05-28 00:33:58