DataTable users_table = db.GetRows("SELECT * FROM users");
int rowCount = users_table.Rows.Count;
int columnCount = users_table.Columns.Count;
Dictionary<int, Dictionary<string, string>> baskets = new Dictionary<int, Dictionary<string, string>>();
for (int i = 0; i < rowCount; i++)
{
baskets.Add(i, new Dictionary<string, string>());
for (int j = 0; j < columnCount; j++)
{
var colName = (users_table.Columns[i].ColumnName).ToString();
var colValue = users_table.Rows[i][j].ToString();
baskets[i].Add(colName, colValue);
Response.Write(baskets[i]["user_id"].ToString());
}
}
これは私が持っているエラーです。DataTableからaspxで多次元辞書を作成するには?
ArrgumentExceptionは、バスコード[i] .Add(colName、colValue)でユーザコードによって処理されませんでした。
An exception of type 'System.ArgumentException' occurred in mscorlib.dll but was not handled in user code
Additional information: An item with the same key has already been added.
私は間違っていますか?私はそれをデバッグし、 "i"、 "colName"と "colValue"の値が正しいです。なぜそれが私にエラーを与えているのか分からない。 私はネットプログラミングで初心者です
'辞書' .NETで冪等 'Add'と' Set'の操作はできません(とは違っのためのトリックを行う可能性があります。この
のようなあなたのコードの何かを作るでしょうC++の 'map'、あるいはPHPとPythonの連想配列)を使って、2つのケースを別々に扱わなければなりません。 – Dai