按关键字搜索列表

本文关键字:列表 搜索 关键字 | 更新日期: 2023-09-27 18:00:31

我试图在字符串列表中搜索是否存在关键字。以下是列表的样子:

Milk, 2
Eggs, 4
Juice,1

我只想通过提供一个杂货清单项目来搜索清单。我只想让它在列表的每个索引中的第一个单词中搜索杂货名称,而忽略商品名称旁边的计数。我如何才能有效地做到这一点?

按关键字搜索列表

将项解析为Dictionary<string, int>,然后按键查找。

List<string> items = new List<string> {
    "Milk, 2",
    "Eggs, 4",
    "Juice, 1"
};
var dictionary = items.Select(s => s.Split(',')) 
                      .ToDictionary(x => x[0], x => Int32.Parse(x[1]));
bool contains = dictionary.ContainsKey("Milk");
var filteredList = groceryList.Where(i => i.Contains(searchString)).ToList()

应该起作用。

或者,您可以执行i.StartsWith(inputString)inputString.Equals(i.Split(",")[0])

我喜欢Bala的方向,如果你想在其中找到搜索字符串的整行,它就会起作用。如果你只需要获取项目,你就必须拆分字符串。

如果找不到以下内容,则返回null。。。

string searchTerm = "Milk";
string item = items.FirstOrDefault(i => i.StartsWith(searchTerm + ","));