De retour d'une Requête Linq dans une Liste de KeyValuePair de l'

Je suis en train de convertir mon graphique de l'application à partir de données préréglées à l'aide d'une base de données.

Auparavant, j'ai été en utilisant ce:

var data = new Dictionary<string, double>();            

switch (graphselected)
{        
case "1":
    data = new Dictionary<string, double>
    {
        {"Dave", 10.023f},
        {"James", 20.020f},
        {"Neil", 19.203f},
        {"Andrew", 4.039f},
        {"Steve", 5.343f}
    };
    break;
case "2":
    data = new Dictionary<string, double>
    {
        {"Dog", 10.023f},
        {"Cat", 20.020f},
        {"Owl", 19.203f},
        {"Rat", 16.039f},
        {"Bat", 27.343f}
    };
    break;
//etc...
}

//Add each item in data in a foreach loop
foreach (var item in list)
{
    //Adjust the Chart Series values used for X + Y
    seriesDetail.Points.AddXY(item.Key, item.Value);
} 

Et c'est ce que j'essaie de faire:

var list = new List<KeyValuePair<string, double>>();

switch (graphselected)
{
case "1":
    var query = (from x in db2.cd_CleardownCore
                 where x.TimeTaken >= 10.0
                 select new { x.IMEI, x.TimeTaken }).ToList();
    list = query;                
    break;
//...
}

Mon code d'Erreur sur:

list = query; 

Avec L'Erreur :

Cannot implicitly convert type 'System.Collections.Generic.List<AnonymousType#1>'
to 'System.Collections.Generic.List<System.Collections.Generic.KeyValuePair<string,double>>'

Comment puis-je mettre en œuvre une conversion?

Ne new { x.IMEI, x.TimeTaken } ressembler à un KeyValuePair pour vous?
Prises à partir d'un autre post: "LINQ besoin d'un constructeur sans paramètre, car il veut utiliser l'initialisation de collection ({} entre parenthèses). Vous pouvez avoir d'autres constructeurs de classe, mais LINQ ne les utilisera pas." Ce que je comprends c'est la raison pour laquelle son formaté comme dans mon code. Source: stackoverflow.com/questions/15382840/...

OriginalL'auteur Baggerz | 2014-08-28