Я в процессе преобразования моего приложения диаграммы из заданных данных в базу данных.Возврат запроса Linq в список ключей KeyValuePair
Раньше я использовал это:
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);
}
И это то, что я пытаюсь сделать: По
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;
//...
}
Мой код ошибки в:
list = query;
с ошибкой:
Cannot implicitly convert type 'System.Collections.Generic.List<AnonymousType#1>'
to 'System.Collections.Generic.List<System.Collections.Generic.KeyValuePair<string,double>>'
Как осуществить преобразование?
ли 'новый {x.IMEI, x.TimeTaken}' выглядеть как KeyValuePair к вам? –
Взято из другого сообщения: «LINQ нуждается в конструкторе без параметров, потому что он хочет использовать инициализацию коллекции (скобки {}). У вас могут быть дополнительные конструкторы классов, но LINQ не будет их использовать». Насколько я понимаю, именно по этой причине его отформатировали, как в моем коде. Источник: http://stackoverflow.com/questions/15382840/only-parameterless-constructors-and-initializers-are-supported-in-linq-to-entiti – Baggerz