相关疑难解决方法(0)

当foreach迭代时,无法在集合中添加/删除项目

如果我自己实现IEnumerator接口,那么我能够(内部foreach语句)在albumsList不产生异常的情况下添加或删除项目.但是如果foreach语句使用了IEnumerator提供的albumsList,那么尝试添加/删除(在foreach内部)项目albumsList将来自导致异常:

class Program
{
    static void Main(string[] args)
    {

        string[] rockAlbums = { "rock", "roll", "rain dogs" };
        ArrayList albumsList = new ArrayList(rockAlbums);
        AlbumsCollection ac = new AlbumsCollection(albumsList);
        foreach (string item in ac)
        {
            Console.WriteLine(item);
            albumsList.Remove(item);  //works

        }

        foreach (string item in albumsList)
        {
            albumsList.Remove(item); //exception
        }



    }

    class MyEnumerator : IEnumerator
    {
        ArrayList table;
        int _current = -1;

        public Object Current
        {
            get
            {
                return …
Run Code Online (Sandbox Code Playgroud)

c# ienumerable

4
推荐指数
2
解决办法
2万
查看次数

标签 统计

c# ×1

ienumerable ×1