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

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

строка в качестве примера: "0, 10, 20, 30, 100, 200"

Я немного плохо знаком с C#, поэтому простите мне за задавание простого вопроса как это.Спасибо.

57
задан Liam 7 February 2018 в 11:19
поделиться

5 ответов

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

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 объявление в верхней части вашего исходного файла.

138
ответ дан 24 November 2019 в 19:14
поделиться
 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
    }
24
ответ дан 24 November 2019 в 19:14
поделиться

I think it's better to use the Microsoft.VisualBasic.FileIO.TextFieldParser Class if you're working with comma separated values text files.

3
ответ дан 24 November 2019 в 19:14
поделиться

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

string input = "0, 10, 20, 30, 100, 200";
Regex.Split(input, @"\D+");
4
ответ дан 24 November 2019 в 19:14
поделиться

Используйте 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);
}
8
ответ дан 24 November 2019 в 19:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: