Ho spesso bisogno di convertire un "blocco di stringa" (una stringa contenente caratteri di ritorno, ad esempio da un file o un TextBox) in List<string>
.Qual è il modo migliore per convertire una stringa separata da caratteri di ritorno in un elenco <string>?
Qual è un modo più elegante di farlo rispetto al metodo ConvertBlockToLines riportato di seguito?
using System;
using System.Collections.Generic;
using System.Linq;
namespace TestConvert9922
{
class Program
{
static void Main(string[] args)
{
string testBlock = "line one" + Environment.NewLine +
"line two" + Environment.NewLine +
"line three" + Environment.NewLine +
"line four" + Environment.NewLine +
"line five";
List<string> lines = StringHelpers.ConvertBlockToLines(testBlock);
lines.ForEach(l => Console.WriteLine(l));
Console.ReadLine();
}
}
public static class StringHelpers
{
public static List<string> ConvertBlockToLines(this string block)
{
string fixedBlock = block.Replace(Environment.NewLine, "§");
List<string> lines = fixedBlock.Split('§').ToList<string>();
lines.ForEach(s => s = s.Trim());
return lines;
}
}
}
Non è necessario passare 'StrringSplitOptions.None' perché questo è il comportamento predefinito di Split(). –
@Seth: ti sbagli, devi passarlo, quando mandi una 'stringa []', (e non un 'char []').In questo caso, forse non è ovvio per te che Environment.NewLine sia una 'stringa []'. Quindi il tuo commento aiuta a sottolineare che è bello essere prolisso :) –
@silky: Mio male, hai ragione. Questo è quello che ottengo per commentare in fretta ... –