 <p><a href="http://stackoverflow.com/questions/16838136/create-a-lambda-expression-with-a-new-anonymous-type-at-runtime">Create a lambda expression with a new anonymous type at runtime</a></p> <p>This should answer your question. </p> <p>Basically, you'll create an anonymous object, but you'll have to return it to something; right now, nothing is being assigned to the result from liveMatches, so nothing is coming out of it. I would do something like: </p> <pre><code>var Item = liveMatches .Where(match =&gt; match != null) .Select(match =&gt; new { Id = match.Id.ToString(), Name = match.Name ... )).ToList(); </code></pre> <p>Edited based on Sidewinder94's comment</p>