代码之家  ›  专栏  ›  技术社区  ›  Rob

将dictionary<t,u>转换为dictionary<t,u.propertyvalue>

  •  2
  • Rob  · 技术社区  · 15 年前

    我正在重新编写一些代码,同时维护外部接口。我现在需要处理的方法具有以下签名:

    public Dictionary<int, string> GetClientIdNames()
    

    这最初直接返回了一个支持字段,在验证了它是否正在填充它并在需要时执行此操作之后。现在需要存储额外的数据,因此支持字段现在如下:

    private Dictionary<int, Client> _clients;
    
    public struct Client
    {
        public int ClientId { get; set; }
        public string ClientName { get; set; }
        public string Password { get; set; }
    }
    

    所以,除了使用 foreach 构建一个 Dictionary<int, string> Dictionary<int, Client> 使用 ClientName 性质 Client ,如何在运行中执行此转换?

    1 回复  |  直到 15 年前
        1
  •  6
  •   Mark Byers    15 年前

    使用 Enumerable.ToDictionary :

    var clientNames = _clients.ToDictionary(kvp => kvp.Key, kvp => kvp.Value.ClientName);