Это зависит от того, что вы хотите сделать. Другой вариант, который, вероятно, является избыточным для небольших списков, но может быть более эффективным для памяти для больших строк, - это использовать класс StringReader
и использовать перечислитель:
IEnumerable<string> GetNextString(string input)
{
using (var sr = new StringReader(input))
{
string s;
while ((s = sr.ReadLine()) != null)
{
yield return s;
}
}
}
Поддерживает оба конца строки \n
и \r\n
. Поскольку он возвращает IEnumerable
, вы можете обработать его с foreach
или использовать любое из стандартных расширений linq (ToList()
, ToArray()
, Where
и т. Д.).
Например, с foreach
:
var ss = "Hello\nworld\r\ntwo bags\r\nsugar";
foreach (var s in GetNextString(ss))
{
Console.WriteLine("==> {0}", s);
}