Подтвердить что ты не робот

Избавление от нулевых/пустых значений строки в массиве С#

У меня есть программа, в которой массив получает свои данные, используя string.Split(char [] delimiter). (используя ';' в качестве разделителя.)

Некоторые значения, однако, равны нулю. То есть строка содержит части, где нет данных, поэтому она делает что-то вроде этого:

1; 2;; 3;

Это приводит к тому, что мой массив имеет нулевые значения.

Как я могу избавиться от них?

4b9b3361

Ответ 1

Попробуйте следующее:

yourString.Split(new string[] {";"}, StringSplitOptions.RemoveEmptyEntries);

Ответ 2

Вы можете использовать метод расширения Where where, чтобы возвращать ненулевые или пустые значения.

string someString = "1;2;;3;";

IEnumerable<string> myResults = someString.Split(';').Where<string>(s => !string.IsNullOrEmpty(s));

Ответ 3

public static string[] nullLessArray(string[] src)
{
    Array.Sort(src);
    Array.Reverse(src);
    int index = Array.IndexOf(src, null);

    string[] outputArray = new string[index];

    for (int counter = 0; counter < index; counter++)
    {
       outputArray[counter] = src[counter];
    }

    return outputArray;
}

Ответ 4

Вы должны заменить несколько соседних точек с запятой на одну точку с запятой до разделения данных.

Это заменит две точки с запятой на одну точку с запятой:

datastr = datastr.replace(";;",";");

Но если у вас более двух точек с запятой, регулярное выражение будет лучше.

datastr = Regex.Replace(datastr, "([;][;]+)", ";");

Ответ 5

                words = poly[a].Split(charseparators, StringSplitOptions.RemoveEmptyEntries);

                foreach (string word in words)
                    {   
                        richTextBox1.Text += (d + 1)+ "  " + word.Trim(',')+ "\r\n";
                        d++;
                    }

charseparators - это пространство