Преобразование словаря <T, U> в словарь <T, U.PropertyValue> - PullRequest
2 голосов
/ 10 сентября 2010

Я переписываю некоторый код, сохраняя внешний интерфейс. Метод, с которым мне нужно работать, имеет следующую подпись:

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 Ответ

6 голосов
/ 10 сентября 2010

Использование Enumerable.ToDictionary:

var clientNames = _clients.ToDictionary(kvp => kvp.Key, kvp => kvp.Value.ClientName);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...