按关键字搜索列表

时间:2011-06-24 15:16:56

标签: c# list

我正在尝试在字符串列表中搜索关键字的存在。这是列表的样子:

Milk, 2
Eggs, 4
Juice,1

我只想通过提供购物清单项目来搜索列表。我只希望它在列表的每个索引中搜索杂货项目名称的第一个单词,并忽略项目名称旁边的计数。我怎样才能有效地做到这一点?

4 个答案:

答案 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 + ","));