2013-05-04 87 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);