.NET 4.x Перебор Dictionary и сравнение с элементами List - C#
Формулировка задачи:
Здравствуйте! Пишу программу и всё в толк не возьму, как осуществить перебор Dictionary по ключам и сравнение их значений со значениями List-а. Затем, если несколько значений совпало, мне нужно узнать ключ Dictionary, в котором были совпадения. Для примера должно получиться что-то такое:
public int keyIndex = 0;
public void Checking(List<string> Slist)
{
foreach (var d in dict.Keys)
{
if (dict.Values.Contains(Slist))
{
keyIndex++;
}
}
}Решение задачи: «.NET 4.x Перебор Dictionary и сравнение с элементами List»
textual
Листинг программы
static void Main(string[] args)
{
Dictionary<string, List<string>> dict = new Dictionary<string, List<string>>();
dict.Add("Grocery1", new List<string>() { "Watermelon", "Plum", "Apple", "Peach", "Grapes", "Milk" });
dict.Add("Grocery2", new List<string>() { "Milk", "Plum", "Apple", "Peach", "Grapes" });
dict.Add("Grocery3", new List<string>() { "Apple", "Plum", "Grapes" });
dict.Add("Grocery4", new List<string>() { "Watermelon", "Plum", "Apple", "Peach", "Milk", "Grapes", "Egg" });
List<string> basket = new List<string>()
{
"Watermelon",
//"Plum",
"Apple",
//"Peach",
//"Milk",
//"Grapes",
//"Egg",
};
var result = dict.Where(shop => basket.Intersect(shop.Value).Count() == basket.Count);
foreach (var grocery in result)
{
Console.WriteLine(grocery.Key);
}
Console.ReadKey();
}