0

リストがあり、他の3つのリストをそのリストにコピーしたいと思います。

// The main list
List<List<string>> list= new List<List<string>>();

// The lists which I want to combine
ArrayList sublist1= new ArrayList();;
ArrayList sublist2= new ArrayList();;
ArrayList sublist3= new ArrayList();;

私が試したのは:

list[0].AddRange(sublist1);
list[0].AddRange(sublist2);
list[0].AddRange(sublist3);

多次元リストなので動作しません。将来の計画のためにこのタイプのリストが必要です。

どうすればそれを達成できますか?

4

3 に答える 3

1

コメントで既に述べたように、List<string>代わりにArrayList. 多次元配列とは何の関係もありません。型の不一致だけです。

次にList<List<string>>、基本的にはリストタイプを作成することを意味しList<string>、アイテム(山括弧内の部分)として含まれるため、ArrayListsではなく追加する必要があると言います。同様に、アイテムとしてList<string>含まstringれるリストのタイプを意味します。

于 2012-08-07T01:46:04.267 に答える
1

サブリストのタイプをいくつかに変更しますIEnumerable<string>(文字列[]またはList<string>その他のもの)

var sublist1 = new string[] {};
var sublist2 = new string[] {};
var sublist3 = new string[] {};

またはキャストする

list[0].AddRange((IEnumerable<string>) sublist1);
list[0].AddRange((IEnumerable<string>) sublist2);
list[0].AddRange((IEnumerable<string>) sublist3);

の AddRange メソッドを使用しようとしてSystem.Collections.Generic.List<T> おり、このメソッドのシグネチャは

public void AddRange(System.Collections.Generic.IEnumerable<T> collection)

そのため、パラメーターとして IEnumerable が必要です。

于 2012-08-07T01:48:22.680 に答える
1

コメントのように、IEnumerable に続く型を渡す必要があります。たとえば、ArrayLists を List に変更できます。

// The main list
List<List<string>> list = new List<List<string>>();

// The lists which I want to combine
var sublist1 = new List<string>();
var sublist2 = new List<string>();
var sublist3 = new List<string>();

list[0].AddRange(sublist1);
list[0].AddRange(sublist2);
list[0].AddRange(sublist3);
于 2012-08-07T01:52:09.677 に答える