zoukankan      html  css  js  c++  java
  • 遍历DataTable内存数据的三种方法性能对比 dataTable.Select优先选择

    第一种写法,每次循环遍历表,这应该是最普通的做法,结果运行速度比较慢,效果有些难以忍受。

    for (int i = dataTable.Rows.Count - 1; i >= 0; i--) {      DataRow dataRow = dataTable.Rows[i];

         ?? = dataRow[fieldParentID].ToString(); }

    第二种写法,采用 foreach 的遍历方法,效果几乎与第一个没什么本质的差别,最终效果还是有些难以忍受。

    foreach (DataRow dataRow in dataTable.Rows) {

         ?? = dataRow[fieldParentID].ToString(); }

    第三种写法,想了几天,尝试了另外一种方法,用 dataTable.Select 方法,效果非常良好,运行速度,比前2个快很多很多,有明显的差距。

    先把需要的数据Select 出来,然后再循环遍历获得的dataRows结果,虽然我没做过具体的数据,但是的确有很明显的体会。

    DataRow[] dataRows = null; dataRows = dataTable.Select(fieldParentID + "='" + treeNode.Tag.ToString() + "'", dataTable.DefaultView.Sort); foreach (DataRow dataRow in dataRows) {

         DataRow dataRow = dataTable.Rows[i];

         ?? = dataRow[fieldParentID].ToString(); }

    这个方法,还有一个好处,就是可以按指定的排序方法进行排序,用起来非常爽,不用自己再折腾了。

    程序与程序的差别,都不是有天大的明显,每个环节都有一点点的差距,那整个系统的差距就非常明显了,就像人与人的差距不是很明显,

    但是就那么一点点儿差距,使得我们在现实生活中有上下级关系,领导与别领导关系,有了贫富差距。

    Right! is "Fuck GIS",but don't think too much; It means reach a high during playing GIS. Come on!
  • 相关阅读:
    Win10 VS2013 PCL1.8.1和依赖项VTK8.0.1, QHuall(2.15.2), FLANN1.9.1,Boost1.59.0,Zbil1.2.11和libPNG1.6.34编译安装
    Boost log中的几个问题
    Linux 使用静态库注意事项
    Windows中lib和DLL区别和使用
    CMake: ELF文件加载动态库的位置
    CMake 默认编译、链接选项
    ld 链接选项-L,-rpath-link,-rpath
    动态库的链接和链接选项-L,-rpath-link,-rpath
    Linux共享对象之编译参数 -fPIC
    ny509 因子和阶乘
  • 原文地址:https://www.cnblogs.com/jsbrml/p/2313043.html
Copyright © 2011-2022 走看看