Dot-Net
IEnumerable 上的動態 LINQ?
假設我需要使用動態查詢過濾通用列表(
List<string> l; var x = l.Where(*dynamic query*))我將如何使用 LINQ 執行此操作?(目前在數據視圖上使用行過濾器)
我看過scott g 的文章:但它似乎不適用於使用的對象
IEnumerable(包括通用列表)任何人都可以提供任何想法嗎?
假設您的意思是基於字元串的查詢:動態 LINQ 庫可以正常工作;只需
.AsQueryable()先打電話:string s = *dynamic query* var qry = l.AsQueryable().Where(s);這為您的
IQueryable<T>列表提供了一個包裝器,它提供對動態 LINQ 擴展方法的訪問。
您可以使用採用謂詞的 FindAll() 方法。這是一個基本的例子。
List<string> stringList = new List<string>(new string[]{"Smith", "Johnson", "Jordan","Doe"}); List<string> filteredStringList = stringList.FindAll(x => x == "Smith");Find 方法也返回單個項目。
MSDN 上還有一個範例項目,用於在 IEnumerable 和 IQueryable 上執行動態 LINQ 查詢。您可以從中重用 DynamicQueryable 類。這是連結。該項目位於 C# 範例項目中。