我正在尝试在字符串列表中搜索关键字的存在。这是列表的样子:
Milk, 2
Eggs, 4
Juice,1
我只想通过提供购物清单项目来搜索列表。我只希望它在列表的每个索引中搜索杂货项目名称的第一个单词,并忽略项目名称旁边的计数。我怎样才能有效地做到这一点?
答案 0 :(得分:2)
将项目解析为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");
答案 1 :(得分:0)
var filteredList = groceryList.Where(i => i.Contains(searchString)).ToList()
应该有用。
或者,您可以执行i.StartsWith(inputString)
或inputString.Equals(i.Split(",")[0])
。
答案 2 :(得分:0)
我喜欢Bala的方向,如果您希望找到搜索字符串的整行,它就可以工作。如果您只需要获取该项目,则必须拆分该字符串。
答案 3 :(得分:0)
如果找不到,则返回null ...
string searchTerm = "Milk";
string item = items.FirstOrDefault(i => i.StartsWith(searchTerm + ","));