在C#中跨多个列表查找公共项的最快方法

JC.*_*JC. 5 c#

鉴于以下内容:

List<List<Option>> optionLists;
Run Code Online (Sandbox Code Playgroud)

什么是确定出现在所有N个列表中的Option对象子集的快速方法?等式是通过一些字符串属性确定的,例如option1.Value == option2.Value.

因此,我们应该最终List<Option>得出每个项目只出现一次的位置.

Mat*_*ton 8

好的,这将找到每个列表中出现Value的Option对象列表.

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;
Run Code Online (Sandbox Code Playgroud)

它不执行"不同"选择,因此它将返回多个Option对象,其中一些具有相同的值.