0

我需要在我的已知列中搜索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对象。DataGridViewDateTime

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。有人有什么想法吗?

4

1 回答 1

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;
    }

这成功了。

于 2012-08-07T13:37:09.660 回答