<p>Given the following:</p>

<pre><code>List&lt;List&lt;Option&gt;&gt; optionLists;
</code></pre>

<p>what would be a quick way to determine the subset of Option objects that appear in all N lists? Equality is determined through some string property such as option1.Value == option2.Value.</p>

<p>So we should end up with <code>List&lt;Option&gt;</code> where each item appears only once.</p>

Ok, this will find the list of Option objects that have a Value appearing in
every
list.
```
```
var x = from list in optionLists
        from option in list
        where optionLists.All(l => l.Any(o => o.Value == option.Value))
        orderby option.Value
        select option;
```
```
It doesn't do a "distinct" select so it'll return multiple Option objects, some of them with the same Value.