使用if语句和StreamReader从文本文件中分离数据
本文关键字:文件 分离 数据 文本 if 语句 StreamReader 使用 | 更新日期: 2023-09-27 18:02:49
我正在尝试在加载函数旁边使用组合框。
如代码所示:(只是加载数据-第二个对象)
private void btnLoadBooks_Click(object sender, EventArgs e)
{
string[] lineOfContents = File.ReadAllLines("BookList.txt");
foreach (var line in lineOfContents)
{
string[] tokens = line.Split(',');
lbxBooks.Items.Add(tokens[1]);
}
}
是否有一种方法可以使用组合框作为过滤器?
if (cbxBookType.SelectedItem == "PB")
{
sting[] tokens = line.split(',');
<read line only with "PB"????>
}
else if...
这样可以吗?还是有更简单的方法?
如果您的意思是包含PB
的行,您可以这样做:
foreach (var line in File.ReadLines("BookList.txt")
.Where(x => x.Contains("PB")))
{
string[] tokens = line.Split(',');
lbxBooks.Items.Add(tokens[1]);
}
如果您想根据ComboBox
的SelectedItem
搜索行,请使用.Where(x => x.Contains(cbxBookType.SelectedItem.ToString())
。
这里是另一种方法,如果第一列是PB
,则选择第二列,这似乎是您的实际需求。对于你的问题的评论:
var values = File.ReadLines("BookList.txt")
.Select(l => l.Split(','))
.Where(arr => arr[0] == "PB")
.Select(arr => arr[1]);
lbxBooks.Items.AddRange(values.ToArray());