在 DataGridView 中查找包含最接近匹配的 DateTime 对象的行

本文关键字:DateTime 对象 最接近 DataGridView 查找 包含 | 更新日期: 2024-11-05 02:12:26

我需要在我的DataGridView中搜索已知列,并返回包含具有最接近匹配时间(即小于所需搜索时间)的DateTime对象的行。

我过去曾使用 linq 在DataGridView中搜索以查找数据。 但在这些情况下,我正在寻找完全匹配,例如:

public DataGridViewRow FindRow(DataGridView dgv, string columnID, object searchID)
    {
        DataGridViewRow row = dgv.Rows
            .Cast<DataGridViewRow>()
            .Where(r => r.Cells[columnID].Value.Equals(searchID))
            .First();
        return row;
    }

现在我有一个精确的DateTime对象,DataGridView中有一列包含所有DateTime对象。

DateAdded       Data1    Data2
12:34:56.012    x        y
12:34:56.345    x        y
12:34:56.678    x        y

在上面的例子中,如果我正在搜索一个DateTime对象"12:34:56.4",我想返回包含"12:34:56.345"的第二行。

我还在熟悉 linq。 有什么想法吗?

在 DataGridView 中查找包含最接近匹配的 DateTime 对象的行

有时问问题可以帮助你自己回答......

public DataGridViewRow FindRow(DataGridView dgv, DateTime searchID)
    {
        DataGridViewRow row = dgv.Rows
            .Cast<DataGridViewRow>()
            .Where(r => ((DateTime)r.Cells["DateAdded"].Value <= searchID))
            .Last();
        return row;
    }

这成功了。