我正在尝试使用组合框和加载功能。
代码代表:(只是加载数据 - 第二个对象)
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...
这会有用吗?或者有更简单的方法吗?
答案 0 :(得分:1)
如果您的意思是,包含PB
的行可以执行此操作:
foreach (var line in File.ReadLines("BookList.txt")
.Where(x => x.Contains("PB")))
{
string[] tokens = line.Split(',');
lbxBooks.Items.Add(tokens[1]);
}
如果您想根据SelectedItem
使用ComboBox
的{{1}}来搜索这些行。
答案 1 :(得分:0)
如果第一列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());