我在UserModel中有两个相关的静态方法:
public static UserModel GetUserByUsername(String username)
{
//do something
return UserModel;
}
和过载:
public static UserModel GetUserByUsername(String username, DateTime date)
{
//do something else
return DiffUserModel;
}
现在,我可以成功选择
List<UserModel>
运行
... .Select(UserModel.GetUserByUsername)
.ToList();
这是调用重载的方法:
public static UserModel GetUserByUsername(String username)
问题:
如何调用重载方法并使用类似语法传入DateTime
参数?
我希望能够做到这样的事情:
... .Select(UserModel.GetUserByUsername , DateTime.Now)
.ToList();
获取从重载方法生成的List。
答案 0 :(得分:5)
尝试使用lambda expression类型anonymous method:
.Select(x => UserModel.GetUserByUsername(x, DateTime.Now))
答案 1 :(得分:1)
首先,您没有说一个方法是重载而一个方法没有。该方法名称被重载,两个方法都是重载。
至于问题:
.Select(new Func<UserModel, string>(s => UserModel.GetUserByName(s, DateTime.Now)))
答案 2 :(得分:0)
作为替代解决方案,因为您似乎喜欢方法组:
.Zip(Enumerable.Repeat(DateTime.Now, whatever.Count), UserModel.GetUserByName)
可能会做同样的事情。重复使用它有点尴尬,但它的确很简单。