如何从数组填充组合框?

How can I populate comboboxes from arrays?

我是一个包含名称和 phone 数字的文本文件。我的讲师给了我一段代码,将其分成两个数组。现在我在使用这些数组填充名称和 phone 数字组合框时遇到了问题。我得到的只是错误提示 array1 和 array2 在当前上下文中不存在。我怎样才能正确地做到这一点?

这是我的代码的相关部分;

public 部分 class 主要Window : Window { 私有字符串 cFileName = "customer.txt"; 私有字符串[] cNames = 新字符串[0]; private string[] cPhoneNumbers = new string[0];

    public MainWindow()
    {
        InitializeComponent();
        this.Loaded += new RoutedEventHandler(Window_Loaded);
    }

    private void read_Delimited_File(string fileName, ref string[] array1, ref string[] array2)
    {
        StreamReader fileSR = new StreamReader(fileName);

        char[] delimiters = { ',' };

        string[] tempArray = new string[0];
        string line = fileSR.ReadLine();
        while (line != null)
        {
            Array.Resize(ref array1, array1.Length + 1);
            Array.Resize(ref array2, array2.Length + 1);

            tempArray = line.Split(delimiters);

            array1[array1.Length - 1] = tempArray[0];
            array2[array2.Length - 1] = tempArray[1];
            line = fileSR.ReadLine();
        }
        fileSR.Close();
    }

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        Keyboard.Focus(phoneTextBox);

        read_Delimited_File(cFileName, ref cNames, ref cPhoneNumbers);

        for (int i = 0; i < array1.Length; i++)
        {
            nameComboBox.Items.Add(array1[i]);
        }

        for (int i = 0; i < array2.Length; i++)
        {
            phoneNumberComboBox.Items.Add(array1[i]);
        }
    }

变量 array1array2 仅存在于您的函数范围内。

您打算使用 cNamescPhoneNumbers

我会在 2 秒内解雇像你这样写代码的人。永远不要调整数组的大小。而是使用列表对象!!!试试这个

private void read_Delimited_File(string fileName, ref List<string> array1, ref List<string> array2)
        {
            StreamReader fileSR = new StreamReader(fileName);

            char[] delimiters = { ',' };

            string line = "";
            while ((line = fileSR.ReadLine()) != null)
            {
                string[] tempArray = line.Trim().Split(delimiters);
                array1.Add(tempArray[0]);
                array2.Add(tempArray[1]);
            }
            fileSR.Close();
        }
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            Keyboard.Focus(phoneTextBox);
            List<string> cNames = new List<string>();
            List<string> cPhoneNumbers = new List<string>();


            read_Delimited_File(cFileName, ref cNames, ref cPhoneNumbers);

            for (int i = 0; i < array1.Length; i++)
            {
                nameComboBox.Items.Add(array1[i]);
            }

            for (int i = 0; i < array2.Length; i++)
            {
                phoneNumberComboBox.Items.Add(array1[i]);
            }
        }​