нерабочее решение через Linq c#

Входными данными является строка, содержащая один из символов .!?;:()
например: "a; fg x; x y;"

необходимо разделить эту строку по ; , после чего, избавиться от string.Empty и null значений, на выходе должно быть: {"a", " fg x", " x y"}
вместо этого: {"a"}

как это реализовать с помощью Linq? нерабочая версия:

var text = "a; fg x; x y;";
char[] separators = {';','!','?','.',':','(',')'};
string[] sentences = text.Split(separators).Where(x => x != string.Empty && x != null).ToArray();

весь код:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;

class Program
{
    static void Main() 
    {
       
        SplitIntoSentences("a; fg x; x y;");

    }   
    public static void SplitIntoSentences(string text)
    {
        text = text.ToLower();
        char[] separators = {';','!','?','.',':','(',')'};
        string[] sentences = text.Split(separators).Where(x => x != string.Empty && x != null).ToArray();;
        
        Console.Write("{0} ", sentences);
    }       
}


Ответы (1 шт):

Автор решения: A K

Запустил код на приведённом примере - отработало как надо

var text = "a; fg x; x y;";

char[] separators = { ';', '!', '?', '.', ':', '(', ')' };
string[] sentences = text.Split(separators).Where(x => x != string.Empty && x != null).ToArray();

введите сюда описание изображения

Уточните вопрос или "не воспроизводится".

→ Ссылка