我正在开发一个程序,用户可以上传带有链接列表的文本文件,上传成功后,文本文件的行分为两个列表框,其中listbox1包含文本文件中50%的行,listbox2包含剩下50%。
private void readFile()
{
int linenum = 1;
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.Filter = "Text Files|*.txt";
openFileDialog1.Title = "Select a Text file";
openFileDialog1.FileName = "";
DialogResult result = openFileDialog1.ShowDialog();
if (result == DialogResult.OK)
{
string file = openFileDialog1.FileName;
string[] text = System.IO.File.ReadAllLines(file);
foreach (string line in text)
{
if (linenum <= 150)
{
listBox1.Items.Add(line);
}
else
{
listBox2.Items.Add(line);
}
linenum++;
}
}
当我知道文本文件中的行的确切行数时,此代码工作正常,但是当文本文件包含较少的行时,它会引发异常。我试图将文件分成两个相等的部分并将其显示在两个列表框中。请给我任何建议或意见。
答案 0 :(得分:5)
使用Length
数组的text
- 属性。它的值等于数组中成员(行)的数量:
string[] text = System.IO.File.ReadAllLines(file);
int current = 0;
foreach (string line in text)
{
if (current <= text.Length / 2)
{
listBox1.Items.Add(line);
}
else
{
listBox2.Items.Add(line);
}
current++;
}
答案 1 :(得分:0)
var textfile = new string[]{"1","2","3","4"};
List<string> listBox1 = new List<string>();
List<string> listBox2 = new List<string>();
listBox1.AddRange(textfile.Take(textfile.Length / 2));
listBox2.AddRange(textfile.Skip(textfile.Length / 2).Take(textfile.Length / 2));