c#从TXT文件加载数据到组合框并获得第二个值
本文关键字:第二个 组合 TXT 文件 加载 数据 | 更新日期: 2023-09-27 18:02:35
我想要每一行的第二个值。例子:
Joshua,Kind,12
John,Amazing,85
Farrah,Smart,81
将显示组合框
- Kind
- Amazing
- Smart
我代码: string[] lineOfContents = File.ReadAllLines(@"C:'Users'1'Desktop'2.txt");
foreach (var line in lineOfContents)
{
string[] tokens = line.Split(',');
comboBox1.Items.Add(tokens[0]);
}
得到的是第一个值。所以我试试这个:
string[] tokens = line.Split(',')[1];
但是我得到一个错误。如何在组合框中显示每一行的第二个值?谢谢!
对Split的返回值直接使用索引器意味着结果不再是数组,而是直接是字符串
你可以写
string token = line.Split(',')[1];
或
comboBox1.Items.Add(line.Split(',')[1]);
然而这个代码是非常危险的。如果由于某种原因,文本文件中的一行不能正确地分成3部分,会发生什么?我更愿意使用this
来安全并保护循环免受不必要的超出范围异常的影响。string[] lineOfContents = File.ReadAllLines(@"C:'Users'1'Desktop'2.txt");
foreach (var line in lineOfContents)
{
string[] tokens = line.Split(',');
if(tokens.Length >= 2)
comboBox1.Items.Add(tokens[1]);
}
不要改变(它是正确的):
string[] tokens = line.Split(',');
只是改变:
comboBox1.Items.Add(tokens[0]);
to(将0改为1,这样得到的是第二个元素而不是第一个元素):
comboBox1.Items.Add(tokens[1]);
完整代码:
string[] lineOfContents = File.ReadAllLines(@"C:'Users'1'Desktop'2.txt");
foreach (var line in lineOfContents)
{
string[] tokens = line.Split(',');
// get the 2nd element (the 1st item is always item 0)
comboBox1.Items.Add(tokens[1]);
}
修改这一行:
comboBox1.Items.Add(tokens[0]);
:
comboBox1.Items.Add(tokens[1]);
,因为你的标记数组在分割后包含三个元素(在索引0,1,2处);
如果你想使用第二种方法:
将string[] tokens = line.Split(',')[1];
改为string tokens = line.Split(',')[1];
当直接使用索引器时,只返回值而不是数组。
问题是你必须改变
string[] tokens = line.Split(',')[1];
string tokens = line.Split(',')[1];
当你只读取一个元素(第二个元素)
欢呼。