public static class MyExtensionMethods
{
public static IEnumerable<Product>FilterByCategory( this IEnumerable<Product> productEnum, string categoryParam)
{
foreach(Product prod in productEnum)
{
if(prod.Category == categoryParam)
{
yield return prod;
}
}
}
}

将一个集合 按照一定条件进行过滤 返回过滤之后的集合。

    ps:yield关键词把选择条件运用于源数据的条目,以产生一个结果子集。

调用方法:

Product[] productArray = {
new Product {Name = "Kayak", Price = 275M},
new Product {Name = "Lifejacket", Price = 48.95M},
new Product {Name = "Soccer ball", Price = 19.50M},
new Product {Name = "Corner flag", Price = 34.95M}
};
foreach(Product prod in productArray .FilterByCategory("Soccer")){
Console.WriteLine("Name:{0}, Price {1:c}", prod.Name, prod.Price);
}



 

posted on 2012-03-14 16:33  HWwayne  阅读(177)  评论(0编辑  收藏  举报