我可以在c#中将List<int>
转换为List<List<int>>
吗?
当我使用这样的结构时
List<int>element=new List<int>();
List<List<int>>superElement= new List<List<int>>(element);
我遇到了错误,但我可以用另一种方式做到这一点吗?
答案 0 :(得分:12)
你可以这样做:
List<List<int>> superElement = new List<List<int>>();
superElement.Add(element);
答案 1 :(得分:8)
List<int>element=new List<int>();
List<List<int>>superElement= new List<List<int>> { element };
那会有用。您无法在构造函数中传递列表。
答案 2 :(得分:7)
试试这个:
var element = new List<int>();
var superElement = new List< List<int> >(){ element };
答案 3 :(得分: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
答案 4 :(得分:4)
如果您只想初始化List,那么
List<List<int>>superElement= new List<List<int>>();
工程;如果你想让它最初包含一个(空)元素,那么
List<List<int>>superElement= new List<List<int>>{element};
会这样做。
答案 5 :(得分: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);
其中1
是一个ID,您可以这样调用:
List<int> element = superElement[1];