【问题标题】:C# string to combobox issuesC# 字符串到组合框问题
【发布时间】:2023-03-27 14:18:01
【问题描述】:

我想要做的是在文件的标题行中读取到组合框。这是我的代码:

private void button4_Click(object sender, EventArgs e)
{
    string[] startdelim = File.ReadAllLines(textBox1.Text);
    int counter = 1;
    foreach (string delim in startdelim)
    {
        if (counter == 1)
        {
            string removedelim = delim.Replace("\"", "");
            string[] lines = removedelim.IndexOf(",");
            foreach (string line in lines)
            {
                comboBox1.Items.Add(line);
            }
        }
        counter++;
    }
}

由于某种原因,它一直告诉我

错误无法在string[] lines = removedelim.IndexOf(","); 处将类型“int”隐式转换为“string[]”

【问题讨论】:

    标签: c# type-conversion


    【解决方案1】:

    IndexOf 返回字符串"," 在removedelim 中的第一个索引。你正在寻找Split。

    string[] lines = 
        removedelim.Split(new string[] { "," }, StringSplitOptions.None);
    

    请注意,没有一个 Split 的实例需要一个 string(因为某些语言允许在 string 和 char[] 之间进行隐式转换,这会使重载解析变得模棱两可且不易纠正),所以您必须使用带有一组分隔符的重载并且只提供一个。

    【讨论】:

      【解决方案2】:

      这个错误很简单。 IndexOf 返回您搜索的字符的整数位置。您需要使用Split 而不是IndexOf。

      【讨论】:

        【解决方案3】:

        String. IndexOf(Char) : 报告指定 Unicode 字符在此字符串中第一次出现的索引。

        sting.IndexOf(char) 返回一个 int 而不是一个 sting 数组。

        【讨论】:

          【解决方案4】:

          其他人已经发现了错误。您的代码仍然存在问题。您只需要以下几行代码:

          string[] startdelim = File.ReadAllLines(textBox1.Text);
          comboBox1.Items.AddRange(startdelim[0].Replace("\","").Split(","));
          

          【讨论】:

          • 虽然这更简洁(而且确实“更好”),但这并不是他的代码的“问题”。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-05-05
          • 1970-01-01
          • 1970-01-01
          • 2020-10-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多