将 List<T> 转换为 Dictionary<string,T>,Key 设置为 T 的 属性

convert List<T> to Dictionary<string,T> with Key set to a property of T

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

最好的转换方式是什么?

如果我明白你在问什么(这是一个很大的假设),它应该像

一样简单
var someDictionary = quotes.ToDictionary(x => x.Symbol);

Enumerable.ToDictionary Method

Creates a Dictionary from an IEnumerable.

也看看

Enumerable.ToLookup Method

Creates a generic Lookup from an IEnumerable.

字典是一个 1:1 映射(每个键映射到一个值),并且字典是事后可变的(可编辑的)。

查找是一个 1:many 映射(多映射;每个键映射到具有该键的值的 IEnumerable<>),并且 ILookup<,>界面。