我需要搜索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有什么想法吗?
答案 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;
}
这就是诀窍。