Q:

Simplify this process for reading a text file with values joined by special delimiter

Could somebody suggest a better solution, yet not too complex as I am still fresh, to my lengthly one please?  
i.e. read a text file with values joined by a special delimiter and output into a csv
Txt file:
one¬two¬thr,ee¬four
two¬three¬fo,ur¬five

Expected outcome:
one, two, thr,ee, four
two, three, fo,ur, five

each value should sit in it's own column, but can have commas, treat delimiter like a column
Code:
// main method    

     var txtFile = File. ReadAllLines("test.txt");
     var meta = new List<string>();

     foreach (var line in txtFile)
                {
                    var first = line. Substring(0, GetNthIndex(line,'¬',1));
                    var second = line. Substring(GetNthIndex(line, '¬', 1) + 1, GetNthIndex(line, '¬', 2) - GetNthIndex(line, '¬', 1) - 1);
                    var third = line. Substring(GetNthIndex(line, '¬', 2) + 1, GetNthIndex(line, '¬', 3) - GetNthIndex(line, '¬', 2) - 1);
                    var fourth = line. Substring(line. LastIndexOf('¬') + 1);

                    meta. Add("\"" + first + "\"" + "," + "\"" + second + "\"" + "," + "\"" + third + "\"", + "," + "\"" + fourth + "\"");
                }

                File. WriteAllLines("meta.csv",meta);

// outside main method

    public static int GetNthIndex(string l, char c, int n)
            {
              int counter = 0;
              for (var i = 0; i < l.Length; i++)
              {
                  if (l[i] == c)
                  {
                      counter++;
                      if (counter == n)
                      {
                          return i;
                      }
                  }
              }
              return -1;
            }

Appreciate all responses

A:

In order to do that, you have to:

Read all lines from "test.txt". 
Split each line by '¬'. 
Join the split result by your new delimiter, comma.  Notice that you have to pad each cell* with "
Write the new lines to "meta.csv". 

* string. Join concatenates all the elements of a string array, using the specified separator between each element.  The delimiter in our case is a comma (,), padded by double quotes (") from both sides.  Don't forget to pad the result string with double quotes from both sides again.  For example: given a list of [x1,x2,x3], the result would be "x1","x2","x3", as the delimiter is "," and we padded the result with additional quotes from both sides. 
Try this:
List<string> lLines = File. ReadAllLines("test.txt").Select(line => "\"" + string. Join("\",\"", line. Split('¬')) + "\"").ToList();
File. WriteAllLines("meta.csv", lLines);

Or a simpler solution without LINQ:
string[] aLines = File. ReadAllLines("test.txt");
List<string> lMeta = new List<string>();
foreach (string sLine in aLines)
{
    string[] aItems = sLine. Split('¬');
    lMeta. Add("\"" + string. Join("\",\"", aItems) + "\"");
}
File. WriteAllLines("meta.csv", lMeta);

