title: What should be the `IEnumerable<T>` type for the content of a `.csv` file?
body: <p>I have a <code>.csv</code> file (<code>Book1.csv</code>) including transitions of a finite state machine:</p>
  
  <pre><code>q_src,eve,q_dst
  q0,sig1,q1
  q1,sig2,q2
  </code></pre>
  
  <p>I need to write a method to find the result of a transition. </p>
  
  <pre><code>State FindDestination(State q0, Event s0)
  {
      var transitions = File.ReadAllLines(@"Book1.csv").Skip(1).Select(x =&gt; x.Split(','));
      State newq = from t in transitions
                   where t.q_src ==q0 &amp;&amp; t.eve == s0
                   select new t.q_dst;
      return newq;
  }
  </code></pre>
  
  <p>But it's not efficient because the method will read the file every time for each transition:</p>
  
  <p>Now if I try to read the file once and pass its content to the method, I don't k
  now what type should I use for the <code>transitions</code> in the method's argument:</p>
  
  <pre><code>var transitions = File.ReadAllLines(@"Book1.csv").Skip(1).Select(x =&gt; x.Split(','));
  
  State FindDestination(State q0, Event s0, ? transitions)   //?type
  {
      State newq = from t in transitions
                   where t.q_src ==q0 &amp;&amp; t.eve == s0
                   select new t.q_dst;
      return newq;
  }
  </code></pre>
  
  <p>Furthermore, <code>State</code> and <code>Event</code> classes have only one attribute <code>Name</code>.</p>
  
  <p>I've read that the rough ideas is using <code>IEnumerable&lt;?&gt;</code>, but what is the <code>?</code> type for a <code>.csv</code> file?</p>