簡體   English   中英

動態值的 Linq 查詢

[英]Linq query for dynamically value

我有一個IQueryableEmployee對象集合,其中包含FirstNameLastNameDepartment 我正在傳遞以逗號分隔的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM