DOUBLE
オブジェクトの配列があり、それを、NULL
、STRING
またはのみを受け入れるメソッドに渡したいと考えていますDATETIME
。そのため、値を渡そうとすると、任意のオブジェクトを渡すことはできず、DOUBLE
、NULL
、STRING
またはDATETIME
最初に解析する必要があるというエラーが表示されます。
foreach (var currRow in dataSet.Tables[0].Rows)
{
var tuple = Com.Tibco.As.Space.Tuple.Create();
//here is where i loop through the object array
for (int i = 0; i < currRow.Values.Length; i++)
{
//here is where i try to pass it to the method (which doesn't accept it)
tuple.Put(dataSet.Tables[0].ColumnNames[i], currRow.Values[i]);
}
inSpace_.Put(tuple);
}
要するに、各オブジェクトを解析して適切なオブジェクトとしてキャストし、タプル内に配置する方法が必要です。
編集:
これが私がやろうとしたことですが、うまくいきませんでした:
foreach (var currRow in dataSet.Tables[0].Rows)
{
var tuple = Com.Tibco.As.Space.Tuple.Create();
for (int i = 0; i < currRow.Values.Length; i++)
{
if (currRow.Values[i] != null)
{
if (dataSet.Tables[0].ColumnNames[i].GetType().IsEquivalentTo(typeof(DateTime)))
{
DateTime value = DateTime.Parse(dataSet.Tables[0].ColumnNames[i].ToString());
tuple.Put(dataSet.Tables[0].ColumnNames[i], value);
}
else if (dataSet.Tables[0].ColumnNames[i].GetType().IsEquivalentTo(typeof(Double)))
{
Double value = Convert.ToDouble(dataSet.Tables[0].ColumnNames[i]);
tuple.Put(dataSet.Tables[0].ColumnNames[i], value);
}
else
{
string value = dataSet.Tables[0].ColumnNames[i].ToString();
tuple.Put(dataSet.Tables[0].ColumnNames[i], value);
}
}
}
inSpace_.Put(tuple);
}