• DataTable.Select()使用心得


    有个DataTable内存表、一个传入的高度值a,我要从表中先尝试找到a对应的数据,会有三种情况:

    1 存在正好对应a这个高度的数据  

    2.如果没有正好对应的,则取a上下最近高度的两点数据,然后进行内差。

    3.a可能不在此表高度范围内,就只能从此表中取第一条或最后一条数据

    第一种方法:for或foreach循环遍历表,逐个比较a与表中字段(补偿点mm)的大小。这是最普通的做法,处理比较麻烦,运行速度比较慢

    for (int j = 0; j < dataTable.Rows.Count; j++)

    {

     DataRow dataRow = dataTable.Rows[j];

    ?? = dataRow["补偿点mm"].ToString();

    ...

    }

    第二种方法:用 dataTable.Select 方法。不仅逻辑上简单,而且效率上提高

    DataRow[] foundRows = null;

    foundRows = dtCom[i].Select("补偿点mm=" + oilHigh, "补偿点mm asc");  //参数1为筛选条件,参数2为指定的排序顺序

    if (foundRows.Length != 0)

    {

    float result=Convert.ToSingle(foundRowsDown[0]["补偿值mm"].ToString());

    }

    else  

    {

    //上条DataRow,条件改为 "补偿点mm>" + oilHigh, "补偿点mm asc"

    //下条DataRow,条件改为 "补偿点mm<" + oilHigh, "补偿点mm desc"

    //分别判断上下两条数据是否存在,然后处理

    ....

    }

    比较起来,觉得后面的方法方便、巧妙,(*^__^*) 嘻嘻……

  • 相关阅读:
    BZOJ 2724: [Violet 6]蒲公英
    codeforces Lightsabers (hard)
    BZOJ 3884: 上帝与集合的正确用法
    BZOJ 4809: 皇后
    python的变量类型(Day6)
    Python集合方法整理(Day9)
    基本运算符与流程控制(Day5)
    基本数据类型(Day4)
    第一个Python程序(Day3)
    操作系统(Day2.5)
  • 原文地址:https://www.cnblogs.com/verna/p/1929560.html
Copyright © 2020-2023  润新知