当前位置: 代码迷 >> ASP.NET >> 关于Pro ASP.NET MVC 三书中的一个实例的疑问
  详细解决方案

关于Pro ASP.NET MVC 三书中的一个实例的疑问

热度:6529   发布时间:2013-02-25 00:00:00.0
关于Pro ASP.NET MVC 3书中的一个实例的疑问
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~
  相关解决方案