【问题标题】:Refactoring my DataTable search code重构我的 DataTable 搜索代码
【发布时间】:2009-02-10 19:21:29
【问题描述】:

我使用的是 C# 2.0,我不禁认为这不是在集合(在本例中为 DataTable)搜索值的最有效方法:

bool found = false;
foreach (DataRow row in data.Rows)
{
    if (id == row["rowID"])
    {
        found = true;
        break;
    }
}
if (!found)
{
    //Do stuff here
}

谁能想到一种“更清洁”的方式来做到这一点?

【问题讨论】:

    标签: c# search refactoring


    【解决方案1】:

    查看数据表的Select()方法:

    http://msdn.microsoft.com/en-us/library/b5c0xc84(VS.80).aspx

    DataRow[] rows = data.Select("rowID=" + id.ToString());
    if (rows.Length > 0)
    {
        //Do stuff here
    }
    

    【讨论】:

      【解决方案2】:

      这是一个线性搜索,它是最慢的实际搜索。

      如果您想继续使用 DataTable,另一种选择是定义主键并使用 Find() 方法:

      myTable.PrimaryKey = new DataColumn[] { new DataColumn("rowID") };
      DataRow row = myTable.Find(id);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-08-29
        • 2015-05-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多