.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(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д