其中谓词和表达式<func <t,bool =“”>&gt; </func <t,>

时间:2011-02-23 17:17:54

标签: c#-4.0 lambda

我有这行代码返回IList<T>

中特定对象的索引
int index = list.IndexOf(list.Where(x => x.Code == searchValue).FirstOrDefault());

我在许多地方都有类似的构造,它在不同的属性上搜索集合。我的目标是自动执行此操作,因此我可以使用通用方法MyClass<T>

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>());
}

1 个答案:

答案 0 :(得分:2)

我不确定你为什么认为你需要使用表达式树。假设listList<T>,您应该可以使用FindIndex

int index = list.FindIndex(x => x.Code == searchValue);

如果您需要什么,请向我们提供有关所涉及类型的更多信息。