我有2种结构:
public struct Customer
{
public string Code { get; set; }
public string Name { get; set; }
public string Address { get; set; }
}
public class OrganizationDto
{
public int OrgId { get; set; }
public string Name { get; set; }
public int PeopleCount { get; set; }
public string CCEmail { get; set; }
public string address { get; set; }
}
和2个字典:
Dictionary<string, Customer> dataCustomer = new Dictionary<string, Customer>();
Dictionary<string, OrganizationDto> dataOrganization = new Dictionary<string, OrganizationDto>();
如何通过以下方式映射2:
键和不同的地址。因此,我需要具有相同密钥但地址不同的项目。
我试过了:
Dictionary<string, OrganizationDto> changed = dataOrganization
.Where(item => dataCustomer .Keys.Contains(item.Key))
.ToDictionary(item => item.Key, item => item.Value);
这给了我按键的交集,但是我不知道如何只选择具有不同地址(当然还有通用键)的那些。
谢谢
最佳答案
过滤时比较地址属性
var changed = dataOrganization
.Where(item => dataCustomer.Keys.Contains(item.Key)
&& item.Address != dataCustomer[item.Key].Address)
.ToDictionary(item => item.Key, item => item.Value);
关于c# - 需要在C#中按键和值相交2个字典,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36764000/