C # с помощью Split () со списками? - PullRequest
1 голос
/ 28 февраля 2012

Я пытаюсь разбить строку на список значений, разбивая ее по заданному символу.Мне нужно, чтобы это был список, а не массив, потому что число значений может измениться.Как мне поступить так?

Например:

String s = "red, green, blue, unicorn";

станет списком, где элемент с индексом 0 красный, затем 1 зеленый и т. Д.

Ответы [ 3 ]

4 голосов
/ 28 февраля 2012

Предполагается, что ваша строка разделена запятой:

var str = "this, is, a, list, of, stuff";
var list = 
      str
        .Split(',')
        //.Select(s => s.Trim()) //maybe a good idea?
        .ToList();
2 голосов
/ 28 февраля 2012

String.Split[] возвращает string[]. Массив будет содержать сколько угодно элементов в строке. Вы не можете использовать это? Смотри http://msdn.microsoft.com/en-us/library/b873y76a.aspx

0 голосов
/ 28 февраля 2012

Мне нужно разбить строку на список, потому что я не знаю, сколько значений будет иметь список.

Я не уверен, почему выдумаете, вам нужен список, чтобы узнать, сколько значений возвращает Split?

Вызов Split говорит вам, сколько значений он находит.

Например:

using System;

namespace SampleApplication
{
    static class Program
    {
        [STAThread]
        static void Main()
        {
            var input = "one,two,three,four,five,six";

            string [] words = input.Split(',');

            Console.WriteLine("Number of Words: {0}", words.Length);

            foreach (object value in words)
            {
                Console.WriteLine(value.ToString());
            }
        }
    }
}

Этот код производит такой вывод:

C:\temp>test
Number of Words: 6
one
two
three
four
five
six

C:\temp>
...