title: How to extract data efficiently?
body: <p>There is the next data structure:</p>
  
  <pre><code>var parents = new List&lt;Parent&gt;
  {
      new Parent
      {
          Children = new List&lt;Child&gt;
          {
              new Child { Name = "Name1",  Value = 100 },
              new Child { Name = "Name2",  Value = 0 },
          }
      },
      new Parent
      {
          Children = new List&lt;Child&gt;
          {
              new Child { Name = "Name1",  Value = 0 },
              new Child { Name = "Name2",  Value = 200 },
          }
      },
      new Parent
      {
          Children = new List&lt;Child&gt;
          {
              new Child { Name = "Name1",  Value = 0 },
              new Child { Name = "Name2",  Value = 200 },
          }
      },
      new Parent
      {
          Children = new List&lt;Child&gt;
          {
              new Child { Name = "Name1",  Value = 100 },
              new Child { Name = "Name2",  Value = 0 },
          }
      }
  };
  </code></pre>
  
  <p>Parents have the similar children but its values can be binary different (0 or some value).</p>
  
  <p>The output should be:</p>
  
  <pre><code>var output = new List&lt;Child&gt;
  {
      new Child { Name = "Name1",  Value = 100 },
      new Child { Name = "Name2",  Value = 200 },
  };
  </code></pre>
  
  <p>Is there efficient and compact way to retrieve data in this way via LINQ or extension methods?</p>