チャートアプリケーションをプリセットデータからデータベースを使用するように変換中です。
以前はこれを使用していました:
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>>'
どうすれば変換を実装できますか?
Keyvaluepairのリストが必要な場合は、keyvaluepairsを使用してリストを作成する必要があります。選択した匿名オブジェクトを次のように置き換えます。
select new KeyValuePair<string,double>(x.IMEI,x.TimeTaken)
新しい問題のために編集:
var q = (from x in db2.cd_CleardownCore
where x.TimeTaken >= 10.0
select new { x.IMEI, x.TimeTaken });
var query = q.AsEnumerable() // anything past this is done outside of sql server
.Select(item=>new KeyValuePair<string,double?>(item.IMEI,item.TimeTaken))
.ToList();