[英]Linq query for dynamically value
我有一個IQueryable
的Employee
對象集合,其中包含FirstName
、 LastName
、 Department
。 我正在傳遞以逗號分隔的LastName
字符串。 我想使用where
子句來過濾LastName
選擇為"Sharma,Gupta"
。 有人可以幫我嗎?
員工班
public class Employee
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Department { get; set; }
public string EmpID { get; set; }
}
public IQueryable<Employee> GetEmpData(String filterExpression)
{
IQueryable<Employee> data = GetEmployeeData();
data = from da in data
where (da.LastName == "Sharma")
select da;
return data;
}
在上述方法中,我可以查詢單個值。 filterExpression
包含以逗號分隔的LastName
列表。 有人可以指導我如何在where
子句中使用filterExpression
嗎?
拆分您的字符串並使用.Contains
:
names = filterExpression.Split(",");
IQueryable<Employee> data = GetEmployeeData();
data = from da in data
where names.Contains(da.LastName)
select da;
當您返回整個對象並且不使用方法語法僅投影它的一部分時,可能更具可讀性:
return GetEmployeeData().Where(item => names.Contains(item.LastName));
如果您的 filterExpression 是一個字符串,名稱以逗號分隔,那么您需要更改查詢以檢查姓氏是否在 filterExpression 中的名稱列表中,如下所示:
public IQueryable<Employee> GetEmpData(String filterExpression)
{
List<string> names = filterExpression.Split(",");
return GetEmployeeData().Where(names.Contains(da.LastName));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.