TGViewer
StepOne | Степан Минин StepOne | Степан Минин @steponeit · 3.27K subscribers
Post #247 2.34K
Строки и теоретико-множественные операции 🧠

Добро пожаловать в экспериментальную рубрику "сомнительно, но окЭй" 😅

Допустим, у нас есть некоторая строка и набор символов.

Надо решить две задачи:

1️⃣Проверить содержит ли строка хотя бы один символ из набора. Для этого надо проверить пересечение двух множеств - строка & символы != пустое множество

2️⃣Проверить содержит ли строка все указанные символы. Тут налицо математическое определение подмножества.

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());
}
  • 👍 22
  • 🤔 9
  • 🌭 4
  • ❤ 1
  • 🥴 1
  • 🍌 1
More from @steponeit
  1. Sep 29, 2026Рассказал как автоматизировал сборку лексера компилятором для своего языка программировани…
  2. Sep 28, 2026Пошутил про джавистов в прямом эфире 😅 Шарпизм победил окончательно и бесповоротно!
  3. Sep 27, 2026Post #860
  4. Sep 25, 2026Рассказал как я добавил в HydraScript объекты и методы без классов и сделал протоколы. Стр…
  5. Sep 22, 2026Post #858
  6. Sep 21, 2026Post #857
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →