#c_sharp #массивы
Есть переменная, содержащая имя, например: string name = "Коля"; и массив, содержащий имена, например: string[] array = { "Коля", "Федя", "Фрося", "Мотя" }; Как проверить, есть ли имя, указанное в переменной, в массиве?
Ответы
Ответ 1
Можно сделать несколькими различными способами, к примеру: string name = "Коля"; string[] array = { "Коля", "Федя", "Фрося", "Мотя" }; // Способ #1 foreach (string str in array) { if (str == name) { Console.WriteLine(string.Format("Слово '{0}' содержится в массиве", name)); // to do something... } } // Способ #2 if (array.Any(str => str == name)) { Console.WriteLine(string.Format("Слово '{0}' содержится в массиве", name)); // to do something... } // Способ #3 if (array.Contains(name)) { Console.WriteLine(string.Format("Слово '{0}' содержится в массиве", name)); // to do something... } Список полезных ссылок на MSDN для изучения: foreach, in (Справочник по C#) Enumerable.Any - метод String.Contains - метод Intersect - методОтвет 2
Можно воспользоваться классом HashSet и методом Contains string name = "Коля"; string[] array = { "Коля", "Федя", "Фрося", "Мотя" }; var hash = new HashSet(array); if (hash.Contains(name)) { Console.WriteLine(string.Format("Слово '" + name + "' содержится в массиве")); //... } Ответ 3
Через LINQ bool result = array.Any(n => n == name);Ответ 4
Выяснить, содержит ли массив искомый элемент, или нет, можно с помощью функций Array.Exists или Array.IndexOf: contains = Array.IndexOf(array, name) != -1; или contains = Array.Exists(array, v => v == name);Ответ 5
Через List<> (net 2.0) Listlst= new List (array); bool result = (lst.IndexOf(name) >=0); можно упростить ((IList )array).IndexOf(name);
Комментариев нет:
Отправить комментарий