title: Reading CSV file and storing values into an dictionary
body: <p>I am trying to read a <code>test.csv</code> file. Like this;</p>
  
  <pre><code>"test.try1.get1","START"
  
  "test.try1.get2","Get 111"
  "test.try1.get3","Get 222, 333"
  "test.try1.get4","Get {test}, [{test2}, {test3]"
  "test.try1.get5","Get \"{test}\", [{test2}, {test3]"
  
  
  "test.try2.get1","Bla bla bla... bla bla bla...
  Bla bla bla bla bla bla bla...
  Bla bla bla bla bla bla bla... (:
  
  BLA?"
  
  "test.try2.get2","Bla bla bla... bla bla bla...
  
   • 1 - Bla bla bla bla bla bla bla...
   • 2 - Bla bla bla bla bla bla bla...
  
  Bla bla bla \" bla bla bla bla... (: \"
  
  BLA?"
  
  "test.try3.get1","BONUSSS!!!"
  "test.try3.get2","BONUSSS!!! \" "
  
  "test.try4.get1","END"
  </code></pre>
  
  <p>I am able to read the <code>test.csv</code> file using <code>StreamReader</code> and able to separate each line by using the <code>Split()</code> function. I want to store each column into a separate dictionary and then display it. Like ;</p>
  
  <pre><code>Console.WriteLine(GetText(test.try1.get1)); //OUTPUT: START (WITHOUT ("))
  </code></pre>
  
  <p>I think, this code is bad.</p>
  
  <p>-How can I improve the performance ? 
  -How do I shorten this code ?
  -Is "The logic of code" good ?
  -Can someone help me ? (:</p>
  
  <p>MY NOT Working code ;</p>
  
  <pre><code>public static Dictionary&lt;string, string&gt; texts = new Dictionary&lt;string, string&gt;();
      public static void LoadCSV() {
          using (StreamReader reader = new StreamReader(@"test.csv")) {
  
              string total = string.Empty;
              bool multipleLine = false;
  
              while (!reader.EndOfStream) {
                  string line = reader.ReadLine().ToString();
  
                  if (!multipleLine &amp;&amp; line.StartsWith("\"") &amp;&amp; !line.EndsWith("\"") &amp;&amp; line != string.Empty) {
                      multipleLine = true;
                  }
  
                  if(multipleLine &amp;&amp; line == string.Empty) {
                      total += "\n\n";
                      continue;
                  }
  
                  if (!multipleLine &amp;&amp; line == string.Empty) {
                      continue;
                  }
  
                  if (multipleLine &amp;&amp; !line.StartsWith("\"") &amp;&amp; !line.EndsWith("\"") &amp;&amp; line != string.Empty) {
                      total += line;
                      continue;
                  }
                  else if (multipleLine &amp;&amp; !line.StartsWith("\"") &amp;&amp; line.EndsWith("\"") &amp;&amp; line != string.Empty) {
                      total += line;
                      multipleLine = false;
                  }
  
                  if (!multipleLine &amp;&amp; line.StartsWith("\"") &amp;&amp; line.EndsWith("\"") &amp;&amp; line != string.Empty) {
                      total = line;
                  }
  
                  string[] splitted = total.Split(',');
  
                  if (!texts.ContainsKey(splitted[0])) {
                      //Index out of range
                      texts.Add(splitted[0].Replace("\"", string.Empty), splitted[1]);
                      Console.WriteLine(string.Format("ADDED : {0} , {1}", splitted[0], splitted[1]));
                  }
  
                  total = string.Empty;
                  multipleLine = false;
              }
          }
      }
  </code></pre>