using System; using System.Collections.Generic; using System.Linq; static class Program { static IEnumerable Words(this string Text) { char[] s = Text.ToCharArray(); bool isWord = false; int left = 0; for (int i = 0; i < s.Length; i++) { bool isLetter = Char.IsLetterOrDigit(s[i]); if (isLetter && !isWord) left = i; if (!isLetter && isWord) { yield return new string(s, left, i - left); } isWord = isLetter; } } static void Main(string[] args) { string s = "33 коровы, 33 коровы и стакан чего-то.."; foreach (var w in s.Words()) Console.WriteLine("\"{0}\"", w); string[] result = s.Words().ToArray(); // так можно получить массив Console.ReadKey(); } }