如何定义要在 linq 查询中用作变量的 lambda 表达式?
例如,当按列表项的不同属性对通用列表进行排序时:
IList<SampleClass> list = new List<SampleClass>();
// Populate list
...
list.OrderBy(sampleclass => sampleclass.property1);
list.OrderBy(sampleclass => sampleclass.property2);
我想在变量中定义 lambda 表达式 (sampleclass => Sampleclass.property1) 并调用:
// ??? define expression in a variable ???
Expression expression = sampleclass => sampleclass.property1;
// Sort list by variable expression
list.OrderBy(expression);
提前致谢
飞鸟
您可以使用其中之一Func
重载(Func<T, TResult> http://msdn.microsoft.com/en-us/library/bb549151.aspx恰恰):
Func<SampleClass, PropertyType> expr = sampleclass => sampleclass.property1;
list.OrderBy(expr);
PropertyType
是变量的类型,存储为property1
在你的SampleClass
。如果是举例的话string
,你会使用Func<SampleClass, string>
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)