我想通过使用密钥来访问我的比较函数。这是我尝试过的。我认为我的问题是我如何声明字典值的类型。如何在字典中存储比较函数?
internal static int CompareUsersByEmail(MembershipUser a, MembershipUser b)
{
// imagine null checking happening here.
return string.Compare(a.Email, b.Email, true);
}
public static void Sort(List<MembershipUser> list, string expression) {
// I can do this
list.Sort(CompareUsersByEmail);
// but not this
Dictionary<string, Func<MembershipUser, MembershipUser, int>> compareFns;
compareFns = new Dictionary<string, Func<MembershipUser, MembershipUser, int>>();
compareFns["Email"] = CompareUsersByEmail;
list.Sort(compareFns[expression]); // where expression would be "Email"
}
这可能吗?
我爱“这是可能的”问题......你试过了吗?你说你有,但你没有指定出了什么问题。 – Jamiec
由于'compareFns [expression]'的值是错误的类型,所以我在最后一行发生了构建错误。 – lincolnk