是否可以在LINQ查詢期間後傳遞參數?在Linq查詢上傳遞參數
比如這個代碼:
objResultFinal = objResultFinal.OrderByDescending(x => x.[iwanttopassparameterhere]).ToList();
這可能嗎?我想在「x」之後聲明。我想要查詢的字符串。
是否可以在LINQ查詢期間後傳遞參數?在Linq查詢上傳遞參數
比如這個代碼:
objResultFinal = objResultFinal.OrderByDescending(x => x.[iwanttopassparameterhere]).ToList();
這可能嗎?我想在「x」之後聲明。我想要查詢的字符串。
objResultFinal.OrderByDescending(s => s.GetType().GetProperty("PropertyName").GetValue(s, null));
如果這是Linq 2 SQL或實體框架會怎麼樣? – user3185569
這對我來說非常合適。謝謝! –
您的列表是類型object
?您必須首先投射或使用反射。
使用鑄造:
var sortedList = objectList.Cast<Email>().OrderByDescending(item => item.EmailAddress).ToList();
也許這可以使用動態LINQ如下完成 -
objResultFinal.OrderBy(passYourParameterHere).ToList();
var list = new List<MyClass>();
list.Add(new MyClass { Name = "V" });
list.Add(new MyClass { Name = "B" });
list.Add(new MyClass { Name = "A" });
list.Add(new MyClass { Name = "C" });
//Create expression here, IF YOU ARE SORTING ON STRING PROPERTY KEEP KEY AS STRING OR CHANGE TO RESPECTIVE DATA TYPE
Func<MyClass,string> expression = s=>s.Name;
var ordered = list.OrderByDescending(expression).ToList();
類對象
class MyClass
{
public string Name { get; set; }
}
通過傳遞參數是什麼意思?你的意思是訪問一個屬性? –
是通過傳遞參數來訪問屬性。例如: 串strToPass = 「myProperty的」 然後在LINQ查詢: X => x.strToPass 這可能嗎?我想在LINQ上動態查詢,但我不確定哪些屬性要過濾。 –
這不是一個有效的語法:'x。[iwanttopassparameterhere]'。你想做什麼 ? – user3185569