其中谓词和表达式>>
我有这行代码,它返回 IList
中特定对象的索引
int index = list.IndexOf(list.Where(x => x.Code == searchValue).FirstOrDefault());
,并且我在很多地方都有类似的构造,它搜索不同属性的集合。我的目标是自动执行此操作,因此我可以使用通用方法 MyClass
int index = myClass.Find<T>(x=> x.Code == searchValue);
或者
int index = MyClass.Find<T>(x => x.Name.ToUpper().StartsWith(searchValue.ToUpper()));
这可以使用 Lambda 表达式吗?
编辑:
对于任何提出同样问题的人,这里是有效的代码:
public int Find(Func<T, bool> whereClause)
{
return _list.IndexOf(_list.Where<T>(whereClause).FirstOrDefault<T>());
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我不确定您为什么认为需要使用表达式树。假设
list
是List
,您应该能够使用FindIndex
:如果这不是您所需要的,请向我们提供有关所涉及类型的更多信息。
I'm not sure why you think you need to use an expression tree. Assuming
list
is aList<T>
, you should be able to useFindIndex
:If that's not what you need, please give us more information about what the types involved are.