Строки и теоретико-множественные операции 🧠
Добро пожаловать в экспериментальную рубрику "сомнительно, но окЭй" 😅
Допустим, у нас есть некоторая строка и набор символов.
Надо решить две задачи:
1️⃣ Проверить содержит ли строка хотя бы один символ из набора. Для этого надо проверить пересечение двух множеств -
2️⃣ Проверить содержит ли строка все указанные символы. Тут налицо математическое определение
LINQ в C#, а также API интерфейса
Добро пожаловать в экспериментальную рубрику "сомнительно, но окЭй" 😅
Допустим, у нас есть некоторая строка и набор символов.
Надо решить две задачи:
строка & символы != пустое множество
подмножества
.LINQ в C#, а также API интерфейса
ISet<>
даёт все возможности для лаконичного программирования указанных решений:public static class StringExtensions
{
public static bool ContainsAnySymbol(
this string str,
IEnumerable<char> symbols) =>
str.Intersect(symbols).Any();
public static bool ContainsAllSymbols(
this string str,
IEnumerable<char> symbols) =>
symbols.ToHashSet().IsSubsetOf(str.ToHashSet());
}