自定义where方法

时间:2015-06-19 11:09:03

标签: c# linq

我有一个我无法使用System.Linq的项目,因此我尝试创建一个cutom Where方法与linq完全相同,我该怎么做?

var x = y.ToList().Where(t => t.Title != "Foo");

解决方案1 ​​

protected void Page_Load(object sender, EventArgs e)
{
    var x = y.ToList().Where<Microsoft.SharePoint.Navigation.SPNavigationNode>(x => x.Title != "Foo");
}

public static class Extensions
{
    public static IEnumerable<T> Where<T>(this IEnumerable<T> source, Func<T, bool> filter)
    {
        foreach (var item in source)
        {
            if (filter(item))
                yield return item;
        }
    }
}

注意:.NET v 2.0

2 个答案:

答案 0 :(得分:4)

这是一个扩展方法:

efg'h

答案 1 :(得分:1)

编写一个确定结果的循环

List<YourObject> List = new List<YourObject>();
List<YourObject> Result = new List<YourObject>();
for (int i = 0; i < List.Count; i++)
{
    if (List[i].Title != "Foo")
        Result.Add(List[i]);
}