這是我的代碼。任何人都可以幫助我重構這段代碼。我試圖使用字段名稱作爲變量,所以我不必使用開關大小寫。有點像從dr in db.Users where dr.FieldName.Contains(value)
。C#Linq使用字段名稱作爲變量的數據庫查詢
public static List<User> GetUser(string value, string fieldName)
{
var db = new CCPTDataContext();
var users = new List<User>();
switch (fieldName)
{
case "FirstName":
users = (from dr in db.Users where dr.FirstName.Contains(value)
select new User
{
Username = dr.Username,
FirstName = dr.FirstName,
LastName = dr.LastName
}).ToList();
break;
case "LastName":
users = (from dr in db.Users where dr.LastName.Contains(value)
select new User
{
Username = dr.Username,
FirstName = dr.FirstName,
LastName = dr.LastName
}).ToList();
break;
}
return users;
}
看看[t他的類似問題](http://stackoverflow.com/questions/3682835/if-condition-in-linq-where-clause) –