【发布时间】:2016-07-02 20:56:12
【问题描述】:
我有一个名为Privileges的类,具有以下属性int UserId,string FormName,string CompName,int Privilege
我有 2 个 Privileges 类型列表,其值不同,如下例所示
List<Privileges> list1 = new List<Privileges>(){
new Privileges(){UserId= 1,FormName="Form1",CompName="Button1",Privilege=2},
new Privileges(){UserId= 2,FormName="Form1",CompName="Button3",Privilege=3},
new Privileges(){UserId= 3,FormName="Form2",CompName="Button2",Privilege=2}
};
List<Privileges> list2 = new List<Privileges>(){
new Privileges(){UserId= 5,FormName="Form1",CompName="Button1",Privilege=2},
new Privileges(){UserId= 2,FormName="Form1",CompName="Button3",Privilege=4},
new Privileges(){UserId= 4,FormName="Form2",CompName="Button2",Privilege=3}
};
我想做3个功能
我做了第一个返回两个列表之间的匹配元素
结果如下
{UserId= 2,FormName="Form1",CompName="Button3",Privilege=3}
第二个函数应该返回存在于第一个列表中而不是第二个列表中的元素,结果如下
{UserId= 1,FormName="Form1",CompName="Button1",Privilege=2},
{UserId= 3,FormName="Form2",CompName="Button2",Privilege=2}
第三个函数应该返回存在于第二个列表中而不是第一个列表中的元素,结果如下
{UserId= 5,FormName="Form1",CompName="Button1",Privilege=2},
{UserId= 4,FormName="Form2",CompName="Button2",Privilege=3}
无论privilege 的值是什么,匹配子句都应该比较UserId,FormName,CompName 的值。
【问题讨论】:
-
请将代码的相关部分添加到您的问题中。
-
可以在代码sn-p中查看
-
听起来很像your last question
-
@Plutonix 是,但有不同的要求
-
你需要一个左外连接。见网页:code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b