title: Concatenating two lists but retaining source object information
body: <p>I am currently working on a quiz application and have hit a bit of a problem.</p>
  
  <p>I have a User class which gets initiated, and contains two lists of the questions asked, one of their own answers, and one for their answers regarding the other colleagues.</p>
  
  <pre><code>public class User
      {
          public List&lt;Answer&gt; AAnswers { get; private set; }
          public List&lt;Answer&gt; BAnswers { get; private set; }
  
          public string Name { get; set; }
  
          public User()
          {
              Name = "Player";
              AAnswers = new List&lt;Answer&gt;();
              BAnswers = new List&lt;Answer&gt;();
          }
  
          public User(string name):this()
          {
              Name = name;
          }
  }
  </code></pre>
  
  <p>I then have a class called Quiz, which contains a lot of additional information about the activity. I will just put the key bits of information in.</p>
  
  <p>Inside the class, I use Concat to build two more lists, with every users own and colleague answers combined. Right now I am using a List to store these lists (AllUserAswers and AllColleagueAnsers), however this does not give me access to the users which initially answered the question.</p>
  
  <p>I tried adding adding a User field to the Answer class and constructor, however NewtonSoft kept generating me a Self referencing loop error, so I guess this is not sensible practice.
  How would I go about creating maybe a List of Users and Answers. Would I need to use a Tuple or similar? As I am struggling for ideas.</p>
  
  <p>Any help would be appreciated.</p>