Переместить один массив данных в другой массив в C # - PullRequest
7 голосов
/ 09 февраля 2009

Как переместить один Arraylist данные в другой Arraylist. Я пробовал для многих вариант, но вывод в виде массива не arraylist

Ответы [ 6 ]

16 голосов
/ 09 февраля 2009

Во-первых - если вы не используете .NET 1.1, вам следует избегать ArrayList - предпочитайте типизированные коллекции, такие как List<T>.

Когда вы говорите «копировать» - хотите ли вы заменить , append или создать новый ?

Для добавления (используя List<T>):

    List<int> foo = new List<int> { 1, 2, 3, 4, 5 };
    List<int> bar = new List<int> { 6, 7, 8, 9, 10 };
    foo.AddRange(bar);

Чтобы заменить, добавьте foo.Clear(); перед AddRange. Конечно, если вы знаете, что второй список достаточно длинный, вы можете зациклить индексатор:

    for(int i = 0 ; i < bar.Count ; i++) {
        foo[i] = bar[i];
    }

Для создания нового:

    List<int> bar = new List<int>(foo);
6 голосов
/ 09 февраля 2009
        ArrayList model = new ArrayList();
        ArrayList copy = new ArrayList(model);

5 голосов
/ 09 февраля 2009

Используйте конструктор ArrayList, который принимает ICollection в качестве параметра. У большинства коллекций есть этот конструктор.

ArrayList newList = new ArrayList(oldList);
4 голосов
/ 09 февраля 2009
ArrayList l1=new ArrayList();
l1.Add("1");
l1.Add("2");
ArrayList l2=new ArrayList(l1);
1 голос
/ 09 февраля 2009

Я нашел ответ для перемещения данных как:

Firstarray.AddRange(SecondArrary);
1 голос
/ 09 февраля 2009

http://msdn.microsoft.com/en-us/library/system.collections.arraylist.addrange.aspx

бесстыдная копия / вставка по вышеуказанной ссылке

  // Creates and initializes a new ArrayList.
  ArrayList myAL = new ArrayList();
  myAL.Add( "The" );
  myAL.Add( "quick" );
  myAL.Add( "brown" );
  myAL.Add( "fox" );

  // Creates and initializes a new Queue.
  Queue myQueue = new Queue();
  myQueue.Enqueue( "jumped" );
  myQueue.Enqueue( "over" );
  myQueue.Enqueue( "the" );
  myQueue.Enqueue( "lazy" );
  myQueue.Enqueue( "dog" );

  // Displays the ArrayList and the Queue.
  Console.WriteLine( "The ArrayList initially contains the following:" );
  PrintValues( myAL, '\t' );
  Console.WriteLine( "The Queue initially contains the following:" );
  PrintValues( myQueue, '\t' );

  // Copies the Queue elements to the end of the ArrayList.
  myAL.AddRange( myQueue );

  // Displays the ArrayList.
  Console.WriteLine( "The ArrayList now contains the following:" );
  PrintValues( myAL, '\t' );

Кроме этого я думаю Марк Гравелл на месте;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...