title: Enumerate regex match names/values
body: <p>What is the C# equivalent of this pseudo-code?</p>
  
  <pre><code>var pattern = ...;
  var lookup = new Dictionary&lt;string, string&gt;();
  
  foreach (var group in new Regex(pattern).Matches())
  {
      lookup[group.Name] = group.Value;
  }
  </code></pre>
  
  <p>I don't see any <code>System.Text.RegularExpressions</code> group-related object that exposes the group name.</p>
  
  <p>What am I missing?</p>
  
  <p>What I'm actually trying to do is convert a file with lines in this format:</p>
  
  <pre><code>eventName|message|date
  </code></pre>
  
  <p>To an <code>IEnumerable&lt;EventLogLine&gt;</code>, with <code>EventLogLine</code> being:</p>
  
  <pre><code>public struct EventLogLine
  {
      public string EventName { get; set; }
      public string Message { get; set; }
      public DateTime Date { get; set; }
  }
  </code></pre>
  
  <p>And put those lines into a <code>IDictionary&lt;string /*EventName*/, IEnumerable&lt;EventLogLine&gt;&gt;.</code></p>