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");
        }
    }
}

編集: ArrayList の使用方法を理解するには、このmsdn の例を参照してください。

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このようにメソッドを使用することです。もう 1 つは、ArrayList が使用しようとしている Scope 内にあることを確認することです。

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

また

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