конвертировать список <T>в словарьс ключом, установленным в свойство T - PullRequest
0 голосов
/ 08 апреля 2019
public class Quote
{
    public decimal Price { get; set; }
    public string Symbol { get; set; }
}

public List<Quote> quotes = 
    new List<Quote>(){new Quote{Price=100.00,Symbol="AAPL"},
                      new Quote{Price=200.00,Symbol="GOOG"}}

List<string,Quote> positions = new List<string,Quote>();

Я хочу установить для каждого position.Key значение Quote.Symbol и для каждого position.Value значение Quote

Какой лучший способ конвертировать?

1 Ответ

2 голосов
/ 08 апреля 2019

Если я понимаю, что вы спрашиваете (и это большое, если), это должно быть просто

var someDictionary = quotes.ToDictionary(x => x.Symbol);

Метод Enumerable.ToDictionary

Создает словарь из IEnumerable.

Также взгляните на

Enumerable.ToLookup Method

Создает общий поиск из IEnumerable.

Словарь представляет собой карту 1: 1 (каждый ключ отображается на одно значение), а словарь является изменяемым (редактируемым) после факта.

Подстановка представляет собой карту 1: много (мультикарта; каждый ключ сопоставляется с IEnumerable<> значений с этим ключом), и в интерфейсе ILookup<,> нет изменения.

...