【发布时间】:2013-07-30 13:29:42
【问题描述】:
我在定义字典以快速访问 Lambda 表达式时遇到问题。
假设我们有一个像这样的知名类:
class Example
{
public string Thing1;
public DateTime Thing2;
public int Thing3;
}
一个想做的事情是这样的:
var getters = new Dictionary<string, IDontKnowWhatGoesHere>();
getters.Add("Thing1", x => x.Thing1);
getters.Add("Thing3", x => x.Thing3);
这可能吗?
编辑:
这是我对这个对象的用例:
List<Example> array = new List<Example>();
// We actually get this variable set by the user
string sortField = "Thing2";
array.Sort(getters[sortField]);
非常感谢您的帮助。
【问题讨论】:
-
您试图将
Func<Example, string>存储为字典中的值类型?这是你想要的吗?你想用这个做什么? -
所以你想存储表达式?
-
你能说一下你需要这个吗?然后我们会写出更好的解决方案。
-
为什么要使用字典?为什么没有
List<Example>?然后你可以使用 linq 。无需限制您可以持有的数据量。 -
嘿,我想快速访问 lambda 表达式。例如... IEnumerable
a; a.OrderBy(getters["Thing3"])
标签: c# lambda expression-trees