5

c# にList<int>変換 できますか? List<List<int>>このような構造を使用する場合

List<int>element=new List<int>();
List<List<int>>superElement= new List<List<int>>(element);

エラーが発生しましたが、別の方法でこれを行うことはできますか?

4

6 に答える 6

12

次のように実行できます。

List<List<int>> superElement = new List<List<int>>();
superElement.Add(element);
于 2013-04-10T09:02:54.667 に答える
8
List<int>element=new List<int>();
List<List<int>>superElement= new List<List<int>> { element };

それはうまくいくでしょう。コンストラクターでリストを渡すことはできません。

于 2013-04-10T09:02:31.767 に答える
7

これを試して :

var element = new List<int>();
var superElement = new List< List<int> >(){ element };
于 2013-04-10T09:02:31.953 に答える
3

他の回答が実際に役立つとは思えないため、より完全で有用な回答であると思われるものを投稿します。

まず、完全を期すために、実際にやろうとしていたことを達成する方法を示します。リストのリストを作成するには、次のようにします。

List<int> element = new List<int>();
List<List<int>> superElement = new List<List<int>>();
superElement.Add(element);

しかし、現状では、なぜこれを行いたいのかあまり意味がありません。いくつかのコメント調査の結果 (害がなかったことを願っています)、ID を整数。これとは別のアプローチを取ることをお勧めします。

個人的には、データを保持するクラスを作成してから、それらの項目の単一のリストを次のように作成します。

public class MyData
{
    public int ID {get; set;}
    public List<int> MyValues {get;set;}

    public MyData()
    {
        MyValues = new List<int>();
    }
}

次に、これを行うことができます:

List<int> element = new List<int>();
MyData data = new MyData();
data.ID = 1;
data.MyValues = element;

List<MyData> superElement = new List<MyData>();
superElement.Add(data);

次のようなクエリが可能になります。

MyData data1 = superElement.SingleOrDeafult(x => x.ID == 1);
List<int> element = data1.MyValues;

Linq が利用可能であると仮定します。


別の方法として、次のように辞書を使用することもできます。

Dictionary<int, List<int>> superElement = new Dictionary<int, List<int>>();
superElement.Add(1, element);

1ID で、次のように呼び出すことができます。

List<int> element = superElement[1];
于 2013-04-10T09:30:31.263 に答える