def在哪里
IEnumerable<Tuple<string, double>> GetValues()
{
....
yield return new Tuple<string,double>(dataRow["<field>"].ToString(),
(double)Convert.ChangeType(dataRow["<field>"], typeof(double)));
....
// and more code similar to above based on other custom logic
}
如您所见,有很多强制转换/强制加倍 它可能仍会变回字符串或其他数据类型
想知道是否有办法获取签名中定义的 Tuple 的数据类型,这样我就可以创建一些通用的帮助程序,而不用担心在某处遗漏一些转换
Reflection 应该可以吧?我希望!
最佳答案
如果这是 DataRow类,你有一个很好的扩展方法,叫做 Field为此。
IEnumerable<Tuple<T1, T2>> GetValues<T1, T2>(String field1, String field2)
{
....
yield return new Tuple<T1,T2>(dataRow.Field<T1>("<field>"),
dataRow.Field<T2>("<field>"));
....
}
关于c# - 获取 Tuple<> 项类型的任何方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9502425/