5

List<int>可以 List<List<int>>在c#中转换吗?当我使用这种结构时

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 回答
5

是的。您可以使用集合初始化程序

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

http://msdn.microsoft.com/en-gb/library/vstudio/bb384062.aspx

于 2013-04-10T09:03:43.757 回答
4

如果您只想初始化列表,那么

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

作品; 如果您希望它最初包含一个(空)元素,那么

List<List<int>>superElement= new List<List<int>>{element};

会做的。

于 2013-04-10T09:03:39.077 回答
3

由于我不相信其他答案真的付出了太多努力来提供帮助,因此我将发布我认为更完整和更有用的答案。

首先,为了完整起见,我将展示如何实现实际尝试完成的目标。要创建列表列表,您可以执行以下操作:

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

但就目前而言,您为什么要这样做并没有多大意义,并且经过一些评论调查(希望它没有受到伤害)我们发现您想要将 ID 与 List 配对整数。我建议对此采取不同的方法。

就个人而言,我会创建一个类来保存我的数据,然后为这些项目创建一个列表,如下所示:

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

ID在哪里1,您可以像这样调用它:

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