私は辞書を多用して、いくつかの(高度に結合された)コードを分離しています。これが私の質問に関連するものです:
//Output table
System.Data.DataTable dtOutput = new System.Data.DataTable();
dtOutput.Columns.Add("Ticket", typeof(string));
dtOutput.Columns.Add("Transit", typeof(string));
dtOutput.Columns.Add("City", typeof(string));
dtOutput.Columns.Add("Province", typeof(string));
dtOutput.Columns.Add("Outage Start Time", typeof(DateTime));
dtOutput.Columns.Add("Outage End Time", typeof(DateTime));
dtOutput.Columns.Add("Priority", typeof(string));
dtOutput.Columns.Add("Business Impact", typeof(TimeSpan));
dtOutput.Columns.Add("Time To Repair (mins)", typeof(Double));
dtOutput.Columns.Add("Summary", typeof(string));
Dictionary<string, int> outputColumnsLegend = new Dictionary<string, int>();
foreach (DataColumn col in dtOutput.Columns)
{
outputColumnsLegend.Add(col.ColumnName, dtOutput.Columns.IndexOf(col) + 1);
}
Dictionary<string, Variable> outputVariable = new Dictionary<string, Variable>()
{
{"Ticket", new Variable()},
{"Transit", new Variable()},
{"City", new Variable()},
{"Province", new Variable()},
{"Outage Start Time", new Variable()},
{"Outage End Time", new Variable()},
{"Priority", new Variable()},
{"Business Impact", new Variable()},
{"Time To Repair (mins)", new Variable()},
{"Summary", new Variable()}
};
ここで、Variableは単純です。
public class Variable
{
public object Value { get; set; }
}
ここで、使用しようとしている出力テーブルを作成します。
DataRow dataRow = dtOutput.NewRow();
foreach (DataColumn col in dtOutput.Columns)
{
dataRow[outputColumnsLegend[col.ColumnName]] = (col.DataType)outputVariable[col.ColumnName].Value;
}
ただし、col.DataTypeのcolを参照すると、次のエラーが発生します。
The type or namespace 'col' could not be found (are you missing a using directive or an assembly reference?)
このエラーをスローする理由や修正方法がわかりません。また、代わりにcol.DataTypeをcol.GetTypeにする必要があるかどうかもわかりません(これを機能させることができると仮定します)。
アドバイスをいただければ幸いです。
よろしく。