【问题标题】:C# List start with value 1C# 列表从值 1 开始
【发布时间】:2017-02-06 06:54:00
【问题描述】:

当我使用for (int i = 1; ..) 时,跳过第一项。 如何从索引 1 开始并且不跳过任何项目?

private void buttonReadAndSort_Click(object sender, EventArgs e)
            {
                ReadFromFile rd = new ReadFromFile();
                var fileList = rd.readFromFile();
                for (int i = 0; i < fileList.Count; i++)
                {

                    var item = (fileList[i]);
                    Console.WriteLine(item);
                    list.Add(item);
                    listBox1.Items.Add(item);
                }
                buttonReadAndSort.Enabled = false;
            }

【问题讨论】:

  • 为什么要以1开头?
  • @JeroenvanLangen ik wil met 1 beginnen zodat ik index kan vermenigvuldigen met een andere getal.
  • 为什么要从索引 1(即元素 #2)开始,而不是跳过元素 #1?是否应该在循环结束时处理元素?如果应该在一开始就处理,那么就从索引0开始。如果您需要索引为+1以进行任何其他操作,只需使用var addedIndex = index + 1变量或类似的东西......如果你问这个问题很奇怪我……
  • @id94 根据您的问题/经验,您可以这样做:您将创建一个额外的变量,将数字加 1。蒂姆给出的答案是正确的。在您使用i 的任何地方,请改用i + 1。参见他的第二个例子。

标签: c# list for-loop indexing int


【解决方案1】:

我猜你想从索引 1 开始,但访问索引 0 处的项目:

for (int i = 1; i <= fileList.Count; i++)
{
    var item = fileList[i-1];
    Console.WriteLine(item);
    list.Add(item);
    listBox1.Items.Add(item);
}

但您也可以正常循环并在需要的地方添加 +1 1:

for (int i = 0; i < fileList.Count; i++)
{
    var item = fileList[i];
    Console.WriteLine("item:{0} #{1}", item, i + 1);
    list.Add(item);
    listBox1.Items.Add(item);
}

【讨论】:

  • @id94 你能发一个完整的代码sn-p,并说明你想要达到什么结果——你现在得到的结果有什么问题?
【解决方案2】:

列表和数组一样,从零开始。不知道为什么您希望它从 1 开始而不跳过任何项目。我执行csvLinesPartNumber.Add("stuff") 之类的操作来添加到列表中,然后我可以从特定索引中获取"stuff",如下所示:csvLinesPartNumber[4]。例如,我正在做一个while sqlreader dot read,它将遍历具有特定 ID 的表。然后你可以做另一个循环来获取数据。只需确保将索引放在方括号中即可。

【讨论】:

    猜你喜欢
    • 2013-03-04
    • 2014-07-05
    • 2015-11-27
    • 2011-11-06
    • 2010-10-18
    • 1970-01-01
    • 1970-01-01
    • 2018-09-24
    • 1970-01-01
    相关资源
    最近更新 更多