Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linq除了通过特定字段进行比较外_Linq_Asp.net Mvc 3 - Fatal编程技术网

Linq除了通过特定字段进行比较外

Linq除了通过特定字段进行比较外,linq,asp.net-mvc-3,Linq,Asp.net Mvc 3,我的数据库中有列表A,我从外部获得了列表B。我想得到 列表A和B具有相同的属性 List<Item> A { ID : 1, Name: "Tool A" , Status : 1, Price : 100 } { ID : 2, Name: "Tool B" , Status : 2, Price : 200 } { ID : 3, Name: "Tool C" , Status : 3, Price : 300 } { ID : 4, Name: "Tool D" , Stat

我的数据库中有
列表A
,我从外部获得了
列表B
。我想得到 列表A和B具有相同的属性

List<Item> A

{ ID : 1, Name: "Tool A" , Status : 1, Price : 100 }
{ ID : 2, Name: "Tool B" , Status : 2, Price : 200 }
{ ID : 3, Name: "Tool C" , Status : 3, Price : 300 }
{ ID : 4, Name: "Tool D" , Status : 4, Price : 400 }
{ ID : 5, Name: "Tool E" , Status : 5, Price : 500 }

List<Item> B

{ ID : 1, Name: null , Status : 1, Price : 100 }
{ ID : 2, Name: null , Status : 2, Price : 200 }
{ ID : 3, Name: null , Status : 3000, Price : 300 }
{ ID : 4, Name: null , Status : 4, Price : 40000 }
{ ID : 5, Name: null , Status : 5, Price : 500 }
属性“Name”的值来自
列表A
,即使它们在
列表B

我在想这样的事情,但它给了我一个奇怪的结果

var ChagnedList = A.AsEnumerable()
   .Where(aa => B.Any(bb => aa.Status != bb.Status || aa.Price != bb.Price))

您可以在中使用ExceptBy方法:

var ChagnedList = A.AsEnumerable()
   .Where(aa => B.Any(bb => aa.Status != bb.Status || aa.Price != bb.Price))
var ChagnedList = A.AsEnumerable()
                   .ExceptBy(B, item => new {item.Status,item.Price});