Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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
C# 比较两个列表的属性_C#_Linq - Fatal编程技术网

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
             };

... 问题是?你的问题在哪里?你的代码在哪里?这看起来像是一个功能请求。看起来你只想使用一个。