2015-12-17 70 views
1

有人知道如何在foreach聲明中將字符串與模型中的項目進行比較嗎? 例如: 我有這樣的foreach循環在foreach語句中比較模型

@foreach (var item in Model) 
{ 
    //code here 
} 

,但我想,等於另一個字符串例如像只顯示項:

String example ="Hello" 
@foreach (var item in Model.where(c => c.Name).equals() example) 
{ 
    //code here 
} 

????這不適合我,我不知道如何做到這一點。

我想知道你怎麼能在foreach循環內部模型比較一個項目爲一個字符串

+0

什麼是你的模型定義? – Christos

+0

你必須寫一個大寫「W」和「Equals」的大寫「E」的「Where」。 C#區分大小寫!你也過早地關閉括號。它應該是'Model.Where(c => c.Name.Equals(example))'。並且將'example'作爲參數傳遞給'Equals'。 –

+0

yeha我知道c#是區分大小寫的我寫在小寫字母只是爲了顯示porpuse我指的是我沒有知道如何使「where」語句正確 –

回答

1

您將有一個正確的謂詞傳遞給Where擴展方法:

string example ="Hello" 
@foreach (var item in Model.Where(c => c.Name == example)) 
{ 

} 

要使用Where擴展方法,您的模型需要實現IEnumerable<T>接口(如果您在foreach中使用它,可能會出現這種情況)。

還要確保System.Linq命名空間已打開您的視圖。否則,您將無法訪問在此定義的擴展方法。

0

如果我正確理解你的問題,你可以把平等的比較在where謂詞是這樣的:

String example ="Hello" 
@foreach (var item in Model.where(c => c.Name=="example") example) 
       { 
       //code here 
       } 
1

只要你要包含在模型中的所有對象,其Name財產等於example的價值,你需要以下條件:

@foreach (var item in Model.Where(c => c.Name==example)) 
{ 
    //code here 
}