是否可以在LINQ查询后的句点之后传递参数?
例如,在此代码中:
objResultFinal = objResultFinal.OrderByDescending(x => x.[iwanttopassparameterhere]).ToList();
这可能吗?我想在“x”之后宣布。我要查询的字符串。
答案 0 :(得分:1)
objResultFinal.OrderByDescending(s => s.GetType().GetProperty("PropertyName").GetValue(s, null));
答案 1 :(得分:1)
也许这可以使用动态LINQ完成,如下所示 -
objResultFinal.OrderBy(passYourParameterHere).ToList();
答案 2 :(得分:0)
您的列表是object
类型的列表吗?您必须先将其投射或使用反射。
使用投射:
var sortedList = objectList.Cast<Email>().OrderByDescending(item => item.EmailAddress).ToList();
答案 3 :(得分:0)
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; }
}