title: Simplify conventional foreach nested loop using linq & lambda expression
body: <p>(See my code snippet below) I want to find all items of coll1 that matched to items of coll2 (number of items of coll2 &lt;= number of items of coll1) and put the query result in coll3. How to achieve it using linq and lambda expression?
  Surely, I can simply copy coll2 to coll3 :-) but that is not my goal. I want to know the ways using linq and lambda to replace such conventional logic construct. Thank you in advance.</p>
  
  <pre><code>        var coll1 = new List&lt;int&gt;() { 1, 2, 3, 4, 5 };
          var coll2 = new List&lt;int&gt;() { 2, 4 };
          var coll3 = new List&lt;int&gt;();
          foreach ( var selected in coll2 )
          {
              foreach ( var item in coll1 )
              {
                  if ( selected == item )
                  {
                      coll3.Add(item);
                  }
              }
          }
  </code></pre>