rellenar un diccionario usando linq

Tengo el siguiente Diccionario vacío

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

y la lista siguiente:

List<ApplicationType> allApplicationTypes = _applicationTypeService.GetAll()

Tipo de aplicación se describe como sigue:

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

Desea rellenar el diccionario de uso de LINQ.

¿Cómo puedo hacer eso?
Gracias.

InformationsquelleAutor Bick | 2013-03-10

2 Kommentare

  1. 79
    appTypeMap = allApplicationTypes.ToDictionary(x => x.id, x => x.name);

    Sin embargo, va a crear un nuevo diccionario, no llenar la suya.

    • +1 incluso mejor. Aprender algo nuevo hoy.
  2. 2

    Intentar

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

    No está seguro de si usted necesita un .ToList() en la final….

    • Al menos debería de dejar un comentario negativo. Esta es una respuesta válida y muestra un método alternativo.
    • yo no downvote, pero el compilador da el «No se puede convertir implícitamente..» error con este código.
    • muy interesante, me había preguntado si la .ToList() era necesario. Gracias por el comentario.
    • Lo siento, pero esto sólo funcionará si usted está esperando una lista de DictionaryEntrys, pero no es un diccionario…

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea