C# 比较两个列表的属性
我有一个带有内容对象的列表(C# 比较两个列表的属性,c#,linq,C#,Linq,我有一个带有内容对象的列表(List)。在内容对象中,我有4个字段 ContentID ModifiedDate Description HtmlMarkup 我有两个列表,我需要通过ContentID(两个不同的数据库)进行比较,看看是否有任何字段具有不同的值,然后我需要得到哪些字段是不同的 假设我有一个物体 ContentID - 1 ModifiedDate - 1/1/2013 Description - "This is my first content class" Htm
List
)。在内容对象中,我有4个字段
ContentID
ModifiedDate
Description
HtmlMarkup
我有两个列表
,我需要通过ContentID(两个不同的数据库)进行比较,看看是否有任何字段具有不同的值,然后我需要得到哪些字段是不同的
假设我有一个物体
ContentID - 1
ModifiedDate - 1/1/2013
Description - "This is my first content class"
HtmlMarkup - "<b>First Content</b>
ContentID-1
修改日期-2013年1月1日
描述-“这是我的第一个内容类”
HtmlMarkup-“第一个内容
和对象B
ContentID - 1 -- these are from two different databases, so contentID will match
ModifiedDate - 1/1/2013
Description - "This is a description"
HtmlMarkup - "<b>Test</b>
ContentID-1——它们来自两个不同的数据库,因此ContentID将匹配
修改日期-2013年1月1日
描述-“这是一个描述”
HtmlMarkup-“测试
我应该用ContentID来比较它们。在这个例子中,我将返回ContentID1的描述和HtmlMarkup是不同的。如果ContentID没有匹配项(意味着它已被删除或不在第二个数据库中),我也想抓住它。我该怎么做呢?这不是最优雅的解决方案,但类似的解决方案应该是可行的。可以修改select以返回所需的任何数据
var result = from contentA in contentObjectA
join contentB in contentObjectB on contentA.Id equals contentB.Id into contentBB
from contentB in contentBB.DefaultIfEmpty(null)
select new {
ContentAId = contentA.Id
//Check if Id exists
ExistsInB = contentB == null ? false : true,
ModifiedDateDiff = contentB.ModifiedDate == null ? true : contentA.ModifiedDate == contentB.ModifiedDate,
DescriptionDiff = contentB.Description == null ? true : contentA.Description == contentB.Description,
HtmlMarkupDiff = contentB.HtmlMarkup == null ? true : contentA.HtmlMarkup == contentB.HtmlMarkup
};
... 问题是?你的问题在哪里?你的代码在哪里?这看起来像是一个功能请求。看起来你只想使用一个。