日期:2014-05-18  浏览次数:20752 次

IEnumerable<InnerBoundary> 和 List<InnerBoundary> 有什么区别
List<InnerBoundary>.add 可以通过add给list 负值,我如何给 IEnumerable<InnerBoundary> 负值,他没有add function,谢谢!

------解决方案--------------------
IEnumerable不能赋值,只能读取

C# code

            InnerBoundary[] nnn=new InnerBoundary[10];
            IEnumerable<InnerBoundary> aaa=nnn;
            IEnumerator<InnerBoundary> oo= aaa.GetEnumerator();
            while (oo.MoveNext())
            {
                InnerBoundary b = oo.Current;
                b.属性=...
            }

------解决方案--------------------
List是实实在在存在的,IEnumerable不一定。

你可以构造一个无限枚举:
IEnumerable<int> foo()
{
while (true) yield return 1;
}
你可以这么用:
foreach (int x in foo().Take(100))
Console.WriteLine(x);

也可以用:
foreach (int x in foo().Take(10000))
Console.WriteLine(x);

它可以无限制地拿出任意多个元素。