【问题标题】:c# acces array outside for loopc#在for循环外访问数组
【发布时间】:2013-06-20 10:09:10
【问题描述】:

我想知道如何在 forloop 之外访问数组。

    string[] lines = File.ReadAllLines("Customers/" + listBox1.SelectedItem.ToString() + "/" + listBox1.SelectedItem.ToString() + ".txt");



         for (int i = 0; i < 4; i++)
         {
             string[] linesSplitted = lines[i].Split(':');

         }

         TextboxName.Text = linesSplitted[0];
         TextboxAddress.Text = linesSplitted[1];
         TextboxZip.Text = linesSplitted[2];
         TextboxTel.Text = linesSplitted[3];
         TextboxEmail.Text = linesSplitted[4];

此时,它无法识别linesSplitted。

【问题讨论】:

  • 在循环外声明数组...
  • 或者把访问数组的代码移到循环中,这里创建了4个数组,用哪一个?
  • @LasseV.Karlsen 我不确定你的意思,这就是所有需要的代码,我没有更多的代码用于这个主题
  • 别在意我原来的评论,这是错误的,改用@MitchWheat 所说的吧。
  • 你覆盖了linesSplitted 4 次。只有最后一次调用才会生效。

标签: c# .net arrays split


【解决方案1】:

从您对另一个答案的评论中,我猜您想要这个:

string[] linesSplitted = new string[5];
for (int i = 0; i < 5; i++)
{
    linesSplitted[i] = lines[i].Split(':')[1];
}

如果这不是您想要的,请给我们一个文本文件内容的示例。

【讨论】:

    【解决方案2】:

    在循环外声明数组。例如

    string[] lines = File.ReadAllLines("Customers/" + listBox1.SelectedItem.ToString() + "/" + listBox1.SelectedItem.ToString() + ".txt");
    
    string[] linesSplitted;
    
    for (int i = 0; i < 4; i++)
    {
       linesSplitted = lines[i].Split(':');
    }
    
    TextboxName.Text = linesSplitted[0];
    TextboxAddress.Text = linesSplitted[1];
    TextboxZip.Text = linesSplitted[2];
    TextboxTel.Text = linesSplitted[3];
    TextboxEmail.Text = linesSplitted[4];
    

    【讨论】:

    • for 循环等价于linesSplitted = lines[3].Split(':');
    【解决方案3】:
    string[] lines = File.ReadAllLines("Customers/" + listBox1.SelectedItem.ToString() + "/" + listBox1.SelectedItem.ToString() + ".txt");
    
    
         string[] linesSplitted;
         for (int i = 0; i < 4; i++)
         {
             linesSplitted = lines[i].Split(':');
    
         }
    
         TextboxName.Text = linesSplitted[0];
         TextboxAddress.Text = linesSplitted[1];
         TextboxZip.Text = linesSplitted[2];
         TextboxTel.Text = linesSplitted[3];
         TextboxEmail.Text = linesSplitted[4];
    

    我不确定你想在那里实现什么......

    【讨论】:

    • 我有一个包含一些信息的文本文件。我希望它显示在文本框中。但只有 ":" 之后的例子:"name: serge" 我只希望文本框用 "serge" 填充
    【解决方案4】:
    string[] lines = File.ReadAllLines("Customers/" + listBox1.SelectedItem.ToString() + "/" + listBox1.SelectedItem.ToString() + ".txt");
    
    
     List<string[]> data  = new List<string[]>(); 
             for (int i = 0; i < 4; i++)
             {
                data.Add(lines[i].Split(':'));
             }
    
    //Retrive array from list and value from array and set to text box
    
             TextboxName.Text = linesSplitted[0];
             TextboxAddress.Text = linesSplitted[1];
             TextboxZip.Text = linesSplitted[2];
             TextboxTel.Text = linesSplitted[3];
             TextboxEmail.Text = linesSplitted[4];
    

    【讨论】:

    • 我收到一条错误消息:“错误 1 ​​无法将类型 'string[]' 隐式转换为 'string'”
    • 它适用于我伙计..请正确检索值..我认为问题在于检索值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-24
    • 1970-01-01
    • 2021-06-29
    • 2020-06-07
    • 2020-04-04
    • 2016-10-29
    • 1970-01-01
    相关资源
    最近更新 更多