我可以使用,如果使用LINQ to where子句?如果LINQ條件Where子句
回答
是的,你可以像:
var query = someList.Where(a => a == "something");
if (condition)
{
query = query.Where(b => b == "something else");
}
var result = query.ToList();
因爲Where
是生產的IQueryable
,執行被推遲到ToList
在我的例子,所以你可以鏈Where
š在一起,你想要多少,然後就執行它在你通過了你所有的條件之後。
。利用在LINQ WhereIf
extenstion方法avaialbe的
實施例的
if (SearchControlMain.PostingID.HasValue)
query = query.Where(q => q.PostingID == SearchControlMain.PostingID);
代替上面去的下面
query = query.WhereIf(SearchControlMain.CategoryID.HasValue, q => q.CategoryID == SearchControlMain.CategoryID);
的環節之一是死的,沒有這樣的事情在我的EF WhereIf''。 – A1rPun 2015-12-31 13:02:08
我不知道問題是什麼,但一個可能的答案可能是:
是,
list.Where(item => { if (Foo(item)) return true; else return false; });
它會說一些簡單的複雜的方式,雖然。
你怎麼試過? – 2010-09-10 07:32:15
是的,至少它與linq-to-objects一起工作。 – 2010-09-10 07:35:25
這等於:list.Where(item => Foo(item)); – 2010-09-10 08:26:59
不知道這是適當的,但它是非常有用的,你可以很輕易地使用IFS有條件的where子句:
var r = (from p in productinfo.tblproduct
where p.Accountid == accountid
select p);
if (uuf1 != null)
r = r.Where(p => p.UnitUserField1 == uuf1);
if (uuf2!= null)
r = r.Where(p => p.UnitUserField2 == uuf2);
所以在where子句將根據什麼是在UUF1或UUF2即進行修正你可能只與信息UUF1,在這種情況下,將採取與忽略UUF2 where子句中,你可能有兩種情況,即它需要兩個或者您可能沒有任何在UUF1或2,你的where子句將只取被認爲是where子句。
我有這樣一個場景,我不得不列表本身內檢查空。這就是我所做的。
items = from p in items
where p.property1 != null //Add other if conditions
select p;
// Use items the way you would use inside the if condition
但隨着凱爾指出,今年將工作太 -
items = items.Where(a => a.property1 != null);
var query = someList.Where(a => (someCondition)? a == "something" : true);
所以,如果 'someCondition' 是假的, '去哪兒' 將被跳過。
這真的應該是被接受的答案 – 2017-09-01 01:22:38
在我的情況下,有根據搜索鍵,其中有兩個「條件」,所以我所做的:
var query = db.Package.Include("SomeThing")
.Where(item => searchString1 == null || searchString1 == "" || item.Contains(searchString1))
.Where(item => searchString2 == null || searchString2 == "" || item.Contains(searchString2));
...
- 1. LINQ的條件Where子句
- 2. LINQ的條件Where子句
- 3. C# - 如果條件在Linq選擇查詢與where子句
- 4. LINQ到SQL多條件where子句
- 5. LINQ中可變條件where子句
- 6. LINQ Where子句多個條件
- 7. ASP.NET C#LINQ條件WHERE子句
- 8. LINQ to Entities條件where子句
- 9. T-SQL基於WHERE子句的結果的條件WHERE子句
- 10. LINQ where子句
- 11. LINQ multiple where子句
- 12. WHERE子句中的條件
- 13. PostgreSQL的條件where子句
- 14. SQL WHERE子句條件
- 15. DB2條件WHERE子句
- 16. JPA where子句條件
- 17. SQL條件where子句
- 18. 有條件where子句mysql
- 19. SQL - 動態條件Where Where子句
- 20. 如何將Linq Expression where子句轉換爲hql where子句?
- 21. 有條件的LINQ where語句?
- 22. linq中where語句的多個條件
- 23. WHERE子句中的條件語句
- 24. CASE語句WHERE子句中!=條件
- 25. select語句where子句二的條件
- 26. ON子句條件與WHERE子句條件WITH JOIN in mysql
- 27. 如果語句在Linq的where子句中
- 28. C#Linq where子句.Contains(string [])
- 29. LINQ Where子句誤解
- 30. Linq Multi加入Where子句
+1最好的答案了三個。 – 2010-09-10 07:34:15
如果不產生IQueryable的,它是生產的IEnumerable。錯誤答案 – 2017-04-11 10:20:45
@OmerK哪裏的,其實產品的IQueryable,如果對象您正在運行的擴展方法也是一個IQueryable,如果你在一個IEnumerable運行它,你會得到一個IEnumerable。 – 2017-08-19 19:29:26