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

Самый простой способ разобрать строку с разделителями-запятыми на какой-то объект, который я могу пропустить, чтобы получить доступ к отдельным значениям?

Каков самый простой способ разобрать строковый список значений, разделенных запятыми, на какой-то объект, который я могу пропустить, чтобы я мог легко получить доступ к отдельным значениям?

Пример строки: "0, 10, 20, 30, 100, 200"

Я немного новичок в С#, поэтому простите меня за простой вопрос. Благодарю.

4b9b3361

Ответ 1

есть ошибки с этим - но в конечном итоге самым простым способом будет использование

string s = [yourlongstring];
string[] values = s.Split(',');

Если количество запятых и записей не важно, и вы хотите избавиться от "пустых" значений, вы можете использовать

string[] values = s.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);

Однако одно - это будет содержать пробелы до и после ваших строк. Вы можете использовать немного магии Linq, чтобы решить эту проблему:

string[] values = s.Split(',').Select(sValue => sValue.Trim()).ToArray();

Это, если вы используете .Net 3.5, и у вас есть использование объявления System.Linq в верхней части исходного файла.

Ответ 2

   var stringToSplit = "0, 10, 20, 30, 100, 200";

    // To parse your string 
    var elements = test.Split(new[]
    { ',' }, System.StringSplitOptions.RemoveEmptyEntries);

    // To Loop through
    foreach (string items in elements)
    {
       // enjoy
    }

Ответ 3

Используйте Linq, это очень быстрый и простой способ.

string mystring = "0, 10, 20, 30, 100, 200";

var query = from val in mystring.Split(',')
            select int.Parse(val);
foreach (int num in query)
{
     Console.WriteLine(num);
}

Ответ 4

Шаблон соответствует всем несимметричным символам. Это ограничит вас неотрицательными целыми числами, но для вашего примера это будет более чем достаточно.

string input = "0, 10, 20, 30, 100, 200";
Regex.Split(input, @"\D+");

Ответ 6

Иногда столбцы будут иметь запятые внутри себя, например:

"Некоторые элементы", "Другой элемент", "Кроме того, еще один элемент"

В этих случаях расщепление на "," будет разбивать некоторые столбцы. Может быть, проще, но я только сделал свой собственный метод (в качестве бонуса, обрабатывает пробелы после запятых и возвращает IList):

private IList<string> GetColumns(string columns)
{
    IList<string> list = new List<string>();

    if (!string.IsNullOrWhiteSpace(columns))
    {
        if (columns[0] != '\"')
        {
            // treat as just one item
            list.Add(columns);
        }
        else
        {
            bool gettingItemName = true;
            bool justChanged = false;
            string itemName = string.Empty;

            for (int index = 1; index < columns.Length; index++)
            {
                justChanged = false;
                if (subIndustries[index] == '\"')
                {
                    gettingItemName = !gettingItemName;
                    justChanged = true;
                }

                if ((gettingItemName == false) &&
                (justChanged == true))
                {
                    list.Add(itemName);
                    itemName = string.Empty;
                    justChanged = false;
                }

                if ((gettingItemName == true) && (justChanged == false))
                {
                    itemName += columns[index];
                }
            }
        }
    }

    return list;
}