2016-11-03 36 views
0

我有一個外部和內部foreach循環,每個循環都在一個列表中循環。內部循環需要根據外部循環的當前值進行過濾。我需要一些內部循環的where子句的語法幫助。根據outerloop的ID在內部foreach循環中過濾列表

@foreach (var item1 in Model.list1) 
{ 
    ... 
    @foreach (var item2 in Model.list2.Where(item2.item1id = item1.item1id)) 
    { 
     ... 
    } 
    ... 
} 

那是什麼正確的語法.Where聲明?

謝謝!

+0

確定這是簡單的比我要把它!如果你想把它放在答案中,我會標記它是正確的。 –

回答

2

的方式LINQ工作在這些謂詞的條款是,你必須給一個變量指定爲列表2你列舉過的元素,所以正確的語法是:

@foreach (var item2 in Model.list2.Where(itemFromList2 => itemFromList2.item1id == item1.item1id)) 

爲列表被處理, Where()將每個項目分配到itemFromList2並使用它進行比較。

+1

標記爲正確的額外解釋,謝謝! –

2

正確的語法是這樣的:

@foreach (var item2 in Model.list2.Where(a=> a.item1id == item1.item1id)) 
...