3 回答

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超6個(gè)贊
您當(dāng)然可以在Where子句(擴(kuò)展方法)中執(zhí)行此操作。但是,如果需要?jiǎng)討B(tài)構(gòu)建復(fù)雜的查詢,則可以使用PredicateBuilder。
var query = collection.Where( c => c.A == 1 || c.B == 2 );
或使用PredicateBuilder
var predicate = PredicateBuilder.False<Foo>();
predicate = predicate.Or( f => f.A == 1 );
if (allowB)
{
predicate = predicate.Or( f => f.B == 1 );
}
var query = collection.Where( predicate );

TA貢獻(xiàn)2011條經(jīng)驗(yàn) 獲得超2個(gè)贊
現(xiàn)在,它已內(nèi)置到.net中,不確定以前是否已建立。給定一個(gè)現(xiàn)有的Linq查詢,您可以添加一個(gè)帶字符串?dāng)?shù)組(SearchStrings)的where子句,并檢查它們是否與您要搜索的集合中的任何對(duì)象匹配。使用ToLower()只是確保您避免在SQL查詢中區(qū)分大小寫。
query.Where(i => SearchStrings.Any(s => i.ToLower().Contains(s.ToLower()));
通過將數(shù)組中的所有單詞與集合的對(duì)象匹配,可以對(duì)“和”謂詞執(zhí)行相同的操作。
query.Where(i => SearchStrings.All(s => i.ToLower().Contains(s.ToLower()));
在此示例中,我與集合中的每個(gè)對(duì)象相關(guān),而s與SearchStrings數(shù)組中的每個(gè)字符串相關(guān)。
- 3 回答
- 0 關(guān)注
- 1283 瀏覽
添加回答
舉報(bào)