3

所以我需要在 C# 中使用 ArrayList。我在 MSDN 中查找,他们说我必须创建一个类,添加 System.Collections 并添加

IList, ICollection, IEnumerable, 

ICloneable到班级

class clsExample : IList, ICollection, IEnumerable, ICloneable;

然后我尝试使用我的 Arraylist。所以我输入:

ArrayList myAL = new ArrayList();

但问题是,当我尝试向数组 ( myAL.Add(1, Example);) 中添加内容时,代码没有找到array (myAL)并在其中标出错误。我错过了什么吗?代码:

    using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;

namespace WindowsFormsApplication7
{
    [SerializableAttribute]

    class clsAL : IList, ICollection, IEnumerable,
    ICloneable
    {
        ArrayList AL = new ArrayList();

    }
}
4

3 回答 3

2

To use ArrayList you do not need to implement the Interfaces你正拥有的。删除它们并使用下面给出的某种方法将对象添加到 ArrayList 中。如果可能的话,您应该查看可以使您免于类型转换的通用列表。

namespace WindowsFormsApplication7
{     
    class clsAL
    {
        ArrayList AL = new ArrayList();
        public void YourFun()
        {
             AL.Add("First");
        }
    }
}

编辑:您可以查看这个msdn 示例以了解如何使用 ArrayList

using System;
using System.Collections;
public class SamplesArrayList  {

   public static void Main()  {

      // Creates and initializes a new ArrayList.
      ArrayList myAL = new ArrayList();
      myAL.Add("Hello");
      myAL.Add("World");
      myAL.Add("!");

      // Displays the properties and values of the ArrayList.
      Console.WriteLine( "myAL" );
      Console.WriteLine( "    Count:    {0}", myAL.Count );
      Console.WriteLine( "    Capacity: {0}", myAL.Capacity );
      Console.Write( "    Values:" );
      PrintValues( myAL );
   }

   public static void PrintValues( IEnumerable myList )  {
      foreach ( Object obj in myList )
         Console.Write( "   {0}", obj );
      Console.WriteLine();
   }

}
于 2012-11-18T03:12:58.693 回答
1

除非您因为某些特殊原因而被迫使用 ArrayList,否则我强烈建议您改用泛型 List 类。

于 2012-11-18T03:16:29.073 回答
0

对于一个ArrayList.Add没有与您要添加的内容相匹配的签名,它只是一个对象。我能想到的最接近的事情是使用这样的ArrayList.Insert方法。另一件事是确保您的 ArrayList 在您尝试使用它的范围内。

AL.Insert(AL.Count,"Example");

或者

Al.Add("Example"); // will append it to the ArrayList
于 2012-11-18T04:00:38.097 回答