Разделение строки по двум критериям

У меня есть строка, как указано ниже.

string sample = "class0 .calss1 .class2 .class3.class4 .class5 class6 .class7";

Мне нужно создать список слов из этой строки образца.

WORD - это строка, которая начинается с точки и заканчивается на:

пространство илидругой период иликонец строки

Запись: Ключевой момент здесь - разделение основано на двух критериях - период и пробел

У меня есть следующая программа. Работает нормально. Однако существует ли более простой / более эффективный / лаконичный подход с использованиемLINQ или жеRegular Expressions?

КОД

        List<string> wordsCollection = new List<string>();
        string sample = " class0 .calss1 .class2 .class3.class4  .class5 class6 .class7";

        string word = null;

        int stringLength = sample.Length;
        int currentCount = 0;

        if (stringLength > 0)
        {
            foreach (Char c in sample)
            {

                currentCount++;
                if (String.IsNullOrEmpty(word))
                {
                    if (c == '.')
                    {
                        word = Convert.ToString(c);
                    }
                }
                else
                {

                    if (c == ' ')
                    {
                        //End Criteria Reached
                        word = word + Convert.ToString(c);
                        wordsCollection.Add(word);
                        word = String.Empty;
                    }
                    else if (c == '.')
                    {
                        //End Criteria Reached
                        wordsCollection.Add(word);
                        word = Convert.ToString(c);
                    }
                    else
                    {
                        word = word + Convert.ToString(c);
                        if (stringLength == currentCount)
                        {
                            wordsCollection.Add(word);
                        }
                    }
                }

            }
        }

РЕЗУЛЬТАТ

        foreach (string wordItem in wordsCollection)
        {
            Console.WriteLine(wordItem);

        }

Ссылка:

Разделение строки на основе предикатаЕсть ли лучший способ получить подпоследовательности, где каждый элемент соответствует предикату?Основанный на Linq альтернативный предикат <T>?

Ответы на вопрос(1)

Ваш ответ на вопрос