2013-05-04 3 views
0

Я ищу способ вставить arraylist в двух разных arraylist с таким же количеством элементов. для примера:Вставка/добавление из одного arraylist в два arraylist

У меня есть ArrayList что-то вроде этого

ArrayList mainArrayList = new ArrayList {1, 2, 3,4,5,6}; 

Так что я хочу от mainArrayList для вставки в два ArrayList (arraylist1 и ArrayList 2)

это то, что я ищу, чтобы есть в двух ArrayList:

ArrayList arrayList1 = new ArrayList {1, 2, 3}; 
ArrayList arrayList2 = new ArrayList {4, 5, 6}; 

я могу сделать через for loop, но я уверен, что лучше делать это.

for (int i = 0; i < mainArrayList.Count; i++) 
{ 
    if(arraylist1.Count <3) { 
     arrayList1.Add(mainArrayList[i]); 
    } 
    if(arrayList1.Count >3) 
    { 
     arrayList2.Add(mainArrayList[i]); 
    } 
} 
+1

Во-первых, не используйте 'ArrayList', используйте' 'List , где' T' является типом для хранения (в данном случае 'int'.) После того, как вы сделаете это , вы можете использовать метод LINQ 'Concat()', чтобы получить то, что вы хотите: 'mainList = firstList.Concat (secondList) .ToList();' – dlev

+0

Я обновил свой вопрос ... я думаю, вы запутались в моем вопросе. так что я ищу из основных данных, я хочу, чтобы два arraylist или список с равными данными в нем в моем случае firstlist 1,2,3, а во втором - 4,5,6 - надеюсь, что я имею в виду. –

ответ

1

Использование GetRange(from, length)

ArrayList mainArrayList = new ArrayList { 1, 2, 3, 4, 5, 6 }; 

ArrayList arrayList1 = mainArrayList.GetRange(0, 3); 
ArrayList arrayList2 = mainArrayList.GetRange(3, 3); 
2

Использование List<T> вместо ArrayList который является старым необщим контейнером. Затем вы можете использовать GetRange():

List<int> mainList = new List<int> {1, 2, 3, 4, 5, 6}; 

List<int> list1 = mainList.GetRange(0, 3); 
List<int> list2 = mainList.GetRange(3, 3); 
Смежные вопросы