Convert StringWriter to string[]

c#

Solution

Try using `Environment.NewLine` to split rather than `'\n'`:

        var stringBuilder = new StringBuilder();
        using (TextWriter writer = new StringWriter(stringBuilder))
        {
            writer.Write("A");
            writer.WriteLine();
            writer.Write("B");
        }

        string fullString = stringBuilder.ToString();
        string[] newline = new string[] { Environment.NewLine };
        string[] arrayOfString = fullString.Split(newline, StringSplitOptions.RemoveEmptyEntries);

        // Returns false but should return true
        Console.WriteLine(arrayOfString.Length == 2);

Problem

I had a requirement to create a `TextWriter` to populate some data. I used the `StringWriter` as a TextWriter and the business logic works fine. I have a technical requirement that cannot be changed because it may break all the clients. I need to an array of strings `string[]` from the `TextWriter` separated by line. I tried with this but didn't work: ``` using System; using System.IO; using System.Text; namespace TextWriterToArrayOfStringsDemo { internal static class Program { private static void Main() { var stringBuilder = new StringBuilder(); using (TextWriter writer = new StringWriter(stringBuilder)) { writer.Write("A"); writer.WriteLine(); writer.Write("B"); } string fullString = stringBuilder.ToString(); string replaced = fullString.Replace('\n', '\r'); string[] arrayOfString = replaced.Split('\r'); // Returns false but should return true Console.WriteLine(arrayOfString.Length == 2); } } } ``` Any idea or suggestion?

Original source