c# - 获取 Tuple<> 项类型的任何方法

标签 c# .net reflection

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/

相关文章:

.net - 父子数据的 xslt 递归模板

c# - 如何证明 Dictionary 的 TryGetValue 的双重检查锁定模式不是线程安全的

c# - 使用通用类型保持代码组织

reflection - 如果我知道函数的名称,是否可以获取其参数?

.net - 在 Visual Studio 2010/Resharper/ASP.NET MVC 中加速编译和单元测试

Java 反射 : automatically invoke the right overloaded method based on parameters and signature

c# - 显示灰色的推送通知图标

c# - 生成缩略图的最有效方法是什么?

c# - 无法从 C#.NET 更新 Access 数据库文件

c# - 如何在对象上进行交易