我有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/

10-13 02:00