如何从数组填充组合框?
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]);
}
}
变量 array1
和 array2
仅存在于您的函数范围内。
您打算使用 cNames
和 cPhoneNumbers
。
我会在 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]);
}
}
我是一个包含名称和 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]);
}
}
变量 array1
和 array2
仅存在于您的函数范围内。
您打算使用 cNames
和 cPhoneNumbers
。
我会在 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]);
}
}