2013-05-04 60 views
0

我正在尋找一種方法將arraylist插入到兩個不同的arraylist中,並使用相同數量的項目。 爲例:從一個數組列表插入/添加到兩個數組列表

我有ArrayList中這樣的事情

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

所以我從mainArrayList要插入成兩個的ArrayList(arraylist1和ArrayList 2)

這就是我期待有兩個數組列表:

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',使用'名單',其中'T'是存儲類型一旦你這樣做(在這種情況下'int'。) ,你可以使用LINQ'Concat()'方法得到你想要的:'mainList = firstList.Concat(secondList).ToList();' – dlev 2013-05-04 00:11:40

+0

我更新了我的問題......我想你對我的問題感到困惑。所以我正在尋找的是從主要數據我想要兩個arraylist或列表與它在我的情況firstlist 1,2,3和第二列表4,5,6 - 希望我有道理。 – 2013-05-04 00:19:32

回答

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