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

时间:2012-08-07 13:30:00

标签: c# .net winforms

我需要搜索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

在上述情况下,如果我正在搜索“{12}:56.4”的DateTime对象,我想返回包含“12:34:56.345”的第二行。

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

1 个答案:

答案 0 :(得分:0)

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

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

        return row;
    }

这就是诀窍。