【发布时间】:2021-08-29 10:18:42
【问题描述】:
我在 Windows 窗体中创建了一个搜索按钮和一个关联的 texbox,以通过 DataGridView 进行搜索。 DGV 在 BindingList 中显示信息。 BindingList 具有类型为 int、string、decimal、int、int 和 int 的属性 PartID、Name、Price、Instock、Min 和 Max。我可以让搜索正常运行,但代码本身看起来很笨拙。如何使用更少的代码在 BindingList 中进行“for”循环搜索?
for (int i = 0; i < Inventory.AllParts.Count; i++)
{
//I would like to condense this if statement into one line of code
if (Inventory.AllParts[i].PartID.ToString().Contains(partsSearchTextBox.Text.ToString())
|| Inventory.AllParts[i].Name.ToString().Contains(partsSearchTextBox.Text.ToString())
|| Inventory.AllParts[i].Price.ToString().Contains(partsSearchTextBox.Text.ToString())
|| Inventory.AllParts[i].Instock.ToString().Contains(partsSearchTextBox.Text.ToString())
|| Inventory.AllParts[i].Min.ToString().Contains(partsSearchTextBox.Text.ToString())
|| Inventory.AllParts[i].Max.ToString().Contains(partsSearchTextBox.Text.ToString()))
{
dgvParts.Rows[i].Selected = true;
found = true;
}
}
【问题讨论】:
-
如果“BindList”对数据使用类的集合,为什么不搜索该集合呢?该类可以提供您测试的复合可搜索字符串。
标签: c# search filter textbox bindinglist