2011-12-19 1 views
2

J'ai une méthode exigeant les éléments suivants:Conversion type anonyme à la liste <KeyValuePair>

public static List<ParetoElement> 
    ParetoBuildBySum(List<KeyValuePair<string, double>> inputData) 

je la requête LINQ suivante et que vous souhaitez ces deux valeurs anonymes dans une liste de KeyValuePairs (chaîne et double) à transmettre.

var myHistoSource = from d in data 
        select new 
        { 
         Type = d.Item_Expense_Type, 
         Amount = Double.Parse(d.Item_Amount.ToString()) 
        }; 

Quelle est la bonne façon?

Merci

Répondre

3

Il suffit de modifier votre requête en conséquence:

var myHistoSource = (
    from d in data 
    select new KeyValuePair<string, double>(d.Item_Expense_Type, 
              Double.Parse(d.Item_Amount.ToString()) 
    ).ToList(); 

En aparté, votre méthode ParetoBuildBySum devrait très probablement accepter une IEnumerable au lieu d'un List comme paramètre.

+0

Merci Jon! Votre point sur IEnumerable est également bon. – Glinkot

Questions connexes