ComboBox with ArrayList
本文关键字:ArrayList with ComboBox | 更新日期: 2023-09-27 18:32:43
我想查找所有扩展名为.xls的文件,并将文件名打印到组合框中。当我运行程序时,组合框是空的,但调试器显示文件 arraylist 的计数为 4。
这是我所拥有的:
private void Form1_Load(object sender, EventArgs e)
{
ArrayList files = new ArrayList();
files.AddRange(System.IO.Directory.GetFiles("c:''test", "*.xls"));
comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
foreach (int i in files)
{
comboBox1.Items.Add(i);
}
comboBox1.SelectedIndex = 0;
}
首先,您的代码不起作用,因为System.IO.Directory.GetFiles
不会返回您在循环中枚举foreach
integers
。
二、如果要保留代码,请将其修改为:
foreach (var i in files)
{
comboBox1.Items.Add(i.ToString());
}
第三,你可以写一个优雅更方便的代码:
var files = System.IO.Directory.GetFiles("c:''test", "*.xls");
comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
comboBox1.Items.AddRange(files);
comboBox1.SelectedIndex = 0;
试试这个:
foreach (FileInfo file in files)
{
comboBox1.Items.Add(file.Name);
}
ArrayList files = new ArrayList();
files.AddRange(System.IO.Directory.GetFiles("c:''test", "*.xls"));
comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
foreach (string i in files)
{
comboBox1.Items.Add(i);
}
comboBox1.SelectedIndex = 0;
我不习惯 ArrayList,但我相信它包含字符串而不是整数。
您应该将 foreach 更改为:
foreach(string file in files)
comboBox1.Items.Add(i);
但是,您可以简单地这样做:
comboBox1.Items.AddRange(Directory.GetFiles("C:''test", "*.xls"));
祝你的任务好运。
Directory.GetFiles 返回一个字符串数组。 不是整数。 所以你循环了一遍,没有找到任何项目。
foreach (string file in files)
{
comboBox1.Items.Add(file);
}