web-dev-qa-db-ja.com

linqを使用して辞書を作成します

次の空の辞書があります

Dictionary<Guid, string> appTypeMap = new Dictionary<Guid, string>();

および次のリスト:

List<ApplicationType> allApplicationTypes = _applicationTypeService.GetAll()

アプリケーションの種類は次のとおりです。

public class ApplicationType
{
   public Guid id {get; set;}
   public String name {get; set;}
}

LINQを使用して辞書を作成します。
それ、どうやったら出来るの?ありがとう。

36
Bick
appTypeMap = allApplicationTypes.ToDictionary(x => x.id, x => x.name);

ただし、新しい辞書が作成されますが、辞書は作成されません。

79
MarcinJuraszek

試して

appTypeMap = _applicationTypeService.GetAll().Select(o => new DictionaryEntry{
  Key = o.id,
  Value = o.name
}).ToList();

最後に.ToList()が必要かどうかわかりません...

2
Mike C.