- C# code
public class ShoppingCart:IEnumerable<Product> { public IEnumerable<Product> Products { get; set; } public IEnumerator<Product> GetEnumerator() { return Products.GetEnumerator(); } IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } }
请问一下第二个方法,放在我的vs2010中为什么实现不了呢?
错误提示:错误 1 “LambaExpressions.ShoppingCart”不实现接口成员“System.Collections.IEnumerable.GetEnumerator()”。“LambaExpressions.ShoppingCart.GetEnumerator()”无法实现“System.Collections.IEnumerable.GetEnumerator()”,因为它没有匹配的返回类型“System.Collections.IEnumerator”。 D:\Study\MVC\ConsoleApplication1\LambaExpressions\Program.cs 48 18 LambaExpressions
------解决方案--------------------------------------------------------
- C# code
using System;using System.Collections;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1{ public class Product { } public class ShoppingCart : IEnumerable<Product> { public IEnumerable<Product> Products { get; set; } public IEnumerator<Product> GetEnumerator() { return Products.GetEnumerator(); } IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } } class Program { static void Main(string[] args) { } }}
------解决方案--------------------------------------------------------
这没什么问题
不过
public static IEnumerable<Product> filter(IEnumerable<Product> prodParam, Func<Product, bool> selectorParam)
{
foreach (Product prod in prodParam)
{
if (selectorParam(prod))
{
yield return prod;
}
}
}
可以简化下
public static IEnumerable<Product> filter(IEnumerable<Product> prodParam, Func<Product, bool> selectorParam)
{
return prodParam.Where(x => selectorParam(x));
}
------解决方案--------------------------------------------------------
你的VS 和 MVC 是什么版本哦?
我这没什么问题~
VS2010 MVC3~