[英]Using more than one condition in linq's where method
我有一行代碼使用 where:
codebase.Methods.Where(x => x.Body.Scopes.Count > 5);
如何插入多個條件? 所以我可以說x => predicate && y => predicate
?
謝謝
如果您願意,您可以將單獨的條件合並為一個謂詞:
codebase.Methods.Where(x => (x.Body.Scopes.Count > 5) && (x.Foo == "test"));
或者您可以為每個條件使用單獨的Where
調用:
codebase.Methods.Where(x => x.Body.Scopes.Count > 5)
.Where(x => x.Foo == "test");
不,你不能在同一個地方定義 2 個委托,但你可以互相構建或像這樣將兩者放在相同的條件下
var result = codebase.Methods.Where(x => x.Body.Scopes.Count > 5 && x.Body.Scopes.name == "" );
or
var result = codebase.Methods.Where(x => x.Body.Scopes.Count > 5 )
.where( y=> y.Body.Scopes.name == '' );
or
var result = codebase.Methods.Where(x => x.Body.Scopes.Count > 5 )
.Union( codebase.Methods.Where(y => y.Body.Scopes.name == '' ) );
在你的例子中, y
來自哪里? Where
方法采用帶有單個輸入參數的 lambda,該參數表示您正在操作的序列的單個實例。
當然,您可以針對x
設置多個條件:
Where(x => x.Foo > 5 && x.Bar < 3)
“y”代表什么?
您可以只使用標准 && 條件。 不需要“y”:
codebase.Methods.Where(x => x.Body.Scopes.Count > 5 && x.Body.SomethingElse < 14);
我不明白。 你不能做什么?
codebase.Methods.Where(x => x.Head.IsHairy && x.Body != null && x.Body.Scopes.Count > 5);
像這樣..
codebase.Methods.Where(x => x.Body.Scopes.Count > 5 && x.Body.Scopes.Count < 10);
codebase.Methods.Where(x => x.Body.Scopes.Count > 5).Where(x => x.Body.Scopes.TypeName == "Scopes").Where(x => x.Body.Scopes.Level == LEVEL_HIGH);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.