我试图循环遍历值的字典,然后更新" MTables" (表名)字段在' QvxDataRow MakeEntry()'功能通过词典的键值。
我需要" MTables"包含这样的
SlNo StudentName StudentClass
1 Daniel 4
2 Maties 4
但在我的代码中,我为每个循环收到错误,如下所示
Cannot convert type 'System.Collections.Generic.KeyValuePair<int, dynamic>' to 'System.Collections.Generic.Dictionary<int, dynamic>
我需要添加硬编码值并将其放入MTables行。我有这个
private IEnumerable<QvxDataRow> GetApplicationDB()
{
Dictionary<int, dynamic> map = new Dictionary<int, dynamic>
{
{1, new {SlNo="1", StudentName="Daniel",StudentClass="4"}},
{2, new {SlNo="2", StudentName="Maties",StudentClass="4"}}
};
foreach (Dictionary<int, string> evl in map)
{
yield return MakeEntry(evl, FindTable("ApplicationsStudentDB", MTables));
}
}
private QvxDataRow MakeEntry( evl, QvxTable table)
{
var row = new QvxDataRow();
row[table.Fields[0]] = evl.SlNo;
row[table.Fields[1]] = evl.StudentName;
row[table.Fields[2]] = evl.StudentClass;
return row;
}
我怎么能这样做,请帮助我。
答案 0 :(得分:5)
这是因为当您遍历Dictionary中的项目时,Dictionary中的项目不是Dictionary,而是KeyValuePair。您在循环中声明evl
类型错误。此外,您的字典包含int
和dynamic
类型,但随后您将循环声明为一对字符串。你不能只改变那样的类型。它应该是:
foreach (KeyValuePair<int, dynamic> evl in map)