Un groupe de collecte et de retour d'un Dictionnaire

J'ai écrit une méthode qui prend une collection d'objets (articles prix - chaque élément dispose d'un montant et d'un code) et les groupes par code renvoie ensuite un IDictionary où la clé est le code de l'élément et la valeur est le groupe des éléments de code (l'Espoir qui fait sens!)

Voici la mise en œuvre de la méthode:

public IDictionary<string, IEnumerable<PriceDetail>> GetGroupedPriceDetails(IEnumerable<PriceDetail> priceDetails)
{
    //create a dictionary to return
    var groupedPriceDetails = new Dictionary<string, IEnumerable<PriceDetail>>();

    //group the price details by code
    var grouping = priceDetails.GroupBy(priceDetail => priceDetail.Code);

    //foreach grouping, add the code as key and collection as value to the dictionary
    foreach (var group in grouping)
    {
        groupedPriceDetails.Add(group.Key, group);
    }

    //return the collection
    return groupedPriceDetails;
}

J'ai ensuite essayé de revoir cette utilisation ToDictionary comme suit:

//group the price details by code and return
return priceDetails.GroupBy(priceDetail => priceDetail.Code)
                   .ToDictionary(group => group.Key, group => group);

J'obtiens une erreur lorsque j'essaie de compiler qui dit que je ne peux pas convertir à partir d'un dictionnaire de string, IGrouping<string, PriceDetail> dans un dictionnaire de string, IEnumerable<PriceDetail>.

Quelqu'un peut me dire comment correctement refactoriser ma première tentative à cette méthode? Je sens qu'il y a une manière plus concise de l'écriture, mais ne peut pas le comprendre!

OriginalL'auteur james lewis | 2012-02-08