Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.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# 如何比较CRM 2016中的两个参与方列表_C#_Plugins_Crm_Dynamics Crm 2016_Appointment - Fatal编程技术网

C# 如何比较CRM 2016中的两个参与方列表

C# 如何比较CRM 2016中的两个参与方列表,c#,plugins,crm,dynamics-crm-2016,appointment,C#,Plugins,Crm,Dynamics Crm 2016,Appointment,我有两份指定人员的政党名单。一个来自PreEntity,一个来自PostEntity,我想比较它们,以找出人物的变化,但不起作用,尽管这两个列表中有许多普通人 var requiredPreImage = preImage.GetAttributeValue<EntityCollection>("requiredattendees"); var requiredPostImage = postImage.GetAttributeValue<EntityCollectio

我有两份指定人员的政党名单。一个来自PreEntity,一个来自PostEntity,我想比较它们,以找出人物的变化,但不起作用,尽管这两个列表中有许多普通人

  var requiredPreImage = preImage.GetAttributeValue<EntityCollection>("requiredattendees");
  var requiredPostImage = postImage.GetAttributeValue<EntityCollection>("requiredattendees");
  foreach (var required in requiredPreImage.Entities)
  {
     if (!requiredPostImage.Entities.Contains(required))
     {
        SendEmail(); // you have deleted from appointment
     }
  }
var requiredPreImage=preImage.GetAttributeValue(“requiredAttendes”);
var requiredPostImage=postImage.GetAttributeValue(“requiredAttendes”);
foreach(requiredPreImage.Entities中需要var)
{
如果(!requiredPostImage.Entities.Contains)(必需))
{
SendEmail();//您已从约会中删除
}
}

您的问题是,您假设Contains正在做一些它实际上没有做的神奇事情。它只是对
对象
类使用标准的
Equals
比较。因此,除非对象是相同的精确引用(在本例中不会),否则它将永远无法在Entities集合中找到该对象

您需要首先获取postImage实体的id列表,然后通过id搜索这些实体:

var requiredPreImage = preImage.GetAttributeValue<EntityCollection>("requiredattendees");
var requiredPostImageIds = postImage.GetAttributeValue<EntityCollection>("requiredattendees").Entities.Select(e => e.Id).Distinct().ToDictionary(id => id);
foreach (var required in requiredPreImage.Entities)
{
    if (!requiredPostImageIds.Contains(required.Id))
    {
        SendEmail(); // you have deleted from appointment
    }
}
var requiredPreImage=preImage.GetAttributeValue(“requiredAttendes”);
var requiredPostImageId=postImage.GetAttributeValue(“requiredAttendes”).Entities.Select(e=>e.Id).Distinct().ToDictionary(Id=>Id);
foreach(requiredPreImage.Entities中需要var)
{
如果(!requiredPostImageId.Contains(required.Id))
{
SendEmail();//您已从约会中删除
}
}
读一下这个