在C#中,如果你想从一个文本框中搜索匹配关键字的字典,你可以使用LINQ查询来实现这个功能。下面是一个简单的示例,展示了如何在一个字典中搜索包含特定关键字的项。
首先,假设你有一个字典,其中包含了一些字符串作为键,以及与之相关的值:
Dictionary<string, string> myDictionary = new Dictionary<string, string>
{
{ "apple", "A fruit" },
{ "banana", "Another fruit" },
{ "cherry", "A sweet fruit" },
{ "date", "A dry fruit" }
};
现在,如果你想搜索包含关键字 "fruit" 的所有项,你可以使用LINQ查询:
string keyword = "fruit";
var results = myDictionary.Where(kvp => kvp.Value.Contains(keyword)).ToList();
这段代码会返回一个包含所有匹配关键字的键值对的列表。Where
方法用于过滤集合,Contains
方法用于检查字符串中是否包含指定的子字符串。
如果你想在文本框中输入关键字并实时搜索,你可以在文本框的 TextChanged
事件中调用上述代码:
private void textBoxSearch_TextChanged(object sender, EventArgs e)
{
string keyword = textBoxSearch.Text;
var results = myDictionary.Where(kvp => kvp.Value.Contains(keyword)).ToList();
// 更新UI显示结果
UpdateResultsUI(results);
}
private void UpdateResultsUI(List<KeyValuePair<string, string>> results)
{
// 这里你可以根据你的UI设计来更新显示结果的控件
// 例如,清空一个列表框并添加新的结果项
listBoxResults.Items.Clear();
foreach (var result in results)
{
listBoxResults.Items.Add($"{result.Key}: {result.Value}");
}
}
在这个例子中,textBoxSearch
是文本框控件的名称,listBoxResults
是用来显示搜索结果的列表框控件的名称。
优势:
类型:
Dictionary<string, string>
类型,但你也可以使用其他类型的键值对。应用场景:
可能遇到的问题及解决方法:
通过这种方式,你可以在C#应用程序中实现一个简单的关键字搜索功能。
领取专属 10元无门槛券
手把手带您无忧上云