 <pre><code>decimal index = SeriesList.SelectMany(p =&gt; p.Childs) .FirstOrDefault(c =&gt; c.key == "aa").Value; </code></pre> <p>But keep in mind, that child with provided key should exist in list, otherwise you will get an exception. I think better to find child first, and then if child exist, get its value:</p> <pre><code>Childs child = SeriesList.SelectMany(p =&gt; p.Childs) .FirstOrDefault(c =&gt; c.key == "aa"); if (child != null) index = child.Value; </code></pre>