【问题标题】:Convert List<int>to List<List<int>>将 List<int> 转换为 List<List<int>>
【发布时间】:2013-04-10 09:01:09
【问题描述】:

我可以在 c# 中将 List&lt;int&gt; 转换为 List&lt;List&lt;int&gt;&gt; 吗? 当我使用这种结构时

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

我遇到了错误,但我可以用其他方式吗?

【问题讨论】:

  • 你想达到什么目的?
  • 我有 ID 和整数向量的数据。我必须将此向量保存在新的超级列表中?你能理解我吗?
  • @MykhailoVashchuk:你应该创建一个包含所有你需要的信息的类,然后有一个列表,它是这些项目的集合。我会发布一个例子,但我觉得它不会回答这个问题
  • @musefan 我们为什么要感到羞耻?有人问,我们回答。如果每个人都拒绝回答,只是因为他/她觉得答案应该很容易或显而易见,那么像 Jon Skeet 这样的用户为什么还要浪费时间用他们的知识来为我们增光添彩?
  • @musefan - 完全不同意。 OP 显然在努力使用集合初始化程序,但问题的措辞不正确,但是我和其他所有人都清楚他想要实现的目标。关于easy rep wagon,我通过回答这个问题获得了0 rep,最高票数是3,因此我看不出你有什么理由这么说。

标签: c# .net list collections


【解决方案1】:

你可以这样做:

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

【讨论】:

  • @MykhailoVashchuk 不要忘记接受您认为对您最有用的任何答案;)
【解决方案2】:
List<int>element=new List<int>();
List<List<int>>superElement= new List<List<int>> { element };

那行得通。你不能在构造函数中传递列表。

【讨论】:

    【解决方案3】:

    试试这个:

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

    【讨论】:

      【解决方案4】:

      是的。你可以使用集合初始化器

      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

      【讨论】:

        【解决方案5】:

        如果你只是想初始化List,那么

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

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

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

        会做的。

        【讨论】:

          【解决方案6】:

          由于我认为其他答案并没有真正提供太多帮助,因此我将发布我认为更完整和更有用的答案。

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

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

          1 是一个 ID,您可以这样称呼它:

          List<int> element = superElement[1];
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-01-01
            • 1970-01-01
            • 2016-12-26
            • 1970-01-01
            • 2018-04-28
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多