title: Assign values from one list to another using LINQ
body: <p>Hello I have a little problem with assigning property values from one lists items to anothers. I know i could solve it "the old way" by iterating through both lists etc. but I am looking for more elegant solution using LINQ.</p>
  
  <p>Let's start with the code ...</p>
  
  <pre><code>class SourceType
  {
      public int Id;
      public string Name;
      // other properties
  }
  
  class DestinationType
  {
      public int Id;
      public string Name;
      // other properties
  }
  
  List&lt;SourceType&gt; sourceList = new List&lt;SourceType&gt;();
  sourceList.Add(new SourceType { Id = 1, Name = "1111" });
  sourceList.Add(new SourceType { Id = 2, Name = "2222" });
  sourceList.Add(new SourceType { Id = 3, Name = "3333" });
  sourceList.Add(new SourceType { Id = 5, Name = "5555" });
  
  List&lt;DestinationType&gt; destinationList = new List&lt;DestinationType&gt;();
  destinationList.Add(new DestinationType { Id = 1, Name = null });
  destinationList.Add(new DestinationType { Id = 2, Name = null });
  destinationList.Add(new DestinationType { Id = 3, Name = null });
  destinationList.Add(new DestinationType { Id = 4, Name = null });
  </code></pre>
  
  <p>I would like to achieve the following:</p>
  
  <ul>
  <li>destinationList should be filled with Names of corresponding entries (by Id) in sourceList</li>
  <li>destinationList should not contain entries that are not present in both lists at once (eg. Id: 4,5 should be eliminated) - something like inner join</li>
  <li>I would like to avoid creating new destinationList with updated entries because both lists already exist and are very large,
  so no "convert" or "select new".</li>
  </ul>
  
  <p>In the end destinationList should contain:</p>
  
  <pre><code>1 "1111"
  2 "2222"
  3 "3333"
  </code></pre>
  
  <p>Is there some kind of elegant (one line Lambda? ;) solution to this using LINQ ?</p>
  
  <p>Any help will be greatly appreciated! Thanks!</p>