【问题标题】:How do I create a custom ordered array from a list? [duplicate]如何从列表创建自定义有序数组? [复制]
【发布时间】:2015-06-29 19:08:34
【问题描述】:

我有一个列表,它以以下格式返回我的数据:

1,2,3,4,5,6

如果我想返回以下格式的数组怎么办? :

[1,2],[3,4],[5,6]

这是我到目前为止所写的:

List<string> list = new List<string>();            
            foreach (var record in model.rows)
            {
                list.Add(record[0]);
                list.Add(record[1]);                  
            }

            Console.WriteLine(list);

【问题讨论】:

标签: c#


【解决方案1】:

你想要的结果是一个数组列表。你可以试试这个:

List<int[]> list = new List<int[]>();

for(int i = 0; i < model.Length; i++)
    list.Add(new[] { model[i], i+1 >= model.Length ? 0 : model[++i] });

++i 运算符将增加 i 的值并读取。因此,数组的第二个元素是通过检查 i+1 是否大于 model 集合的长度来定义的。如果是,则设置0,否则设置model 选择的下一个元素。

【讨论】:

  • 比我还快!您是否需要在 for 循环中将 i 增加 2 而不是 1?
  • 这将在最后一行抛出索引超出范围异常。
  • @rlb.usa 不,因为++i 也会增加i。如果你改用i+1,你会的。
  • @ZoharPeled 仅当 record 中有奇数个项目时。
  • @ZoharPeled 你是对的,如果model 上的项目数是奇数,它会抛出异常。如果添加一个调整来避免它,并将编辑我的 anwser 来解释。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-16
  • 2011-07-18
  • 1970-01-01
  • 2017-07-13
  • 2020-08-28
相关资源
最近更新 更多