Tob*_*ias 3 c# linq sorting lambda expression
如何将要在linq查询中使用的lambdaexpression定义为变量?
例如,当按列表项的不同属性对通用列表进行排序时:
IList<SampleClass> list = new List<SampleClass>();
// Populate list
...
list.OrderBy(sampleclass => sampleclass.property1);
list.OrderBy(sampleclass => sampleclass.property2);
Run Code Online (Sandbox Code Playgroud)
我想在一个变量中定义lambda表达式(sampleclass => sampleclass.property1)并调用:
// ??? define expression in a variable ???
Expression expression = sampleclass => sampleclass.property1;
// Sort list by variable expression
list.OrderBy(expression);
Run Code Online (Sandbox Code Playgroud)
在此先感谢Tobi
您可以Func(Func<T, TResult>精确地)使用重载之一:
Func<SampleClass, PropertyType> expr = sampleclass => sampleclass.property1;
list.OrderBy(expr);
Run Code Online (Sandbox Code Playgroud)
PropertyType是存储在property1中的变量类型SampleClass。如果是这样string,您将使用Func<SampleClass, string>。
| 归档时间: |
|
| 查看次数: |
2522 次 |
| 最近记录: |