Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在DataGridView中查找包含最匹配的DateTime对象的行_C#_.net_Winforms - Fatal编程技术网

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

C# 在DataGridView中查找包含最匹配的DateTime对象的行,c#,.net,winforms,C#,.net,Winforms,我需要在我的DataGridView中搜索一个已知列,并返回包含DateTime对象的行,该对象具有最接近的匹配时间(小于所需的搜索时间) 我过去曾使用linq在DataGridView中搜索数据。但在这些情况下,我一直在寻找一个精确的匹配,如: public DataGridViewRow FindRow(DataGridView dgv, string columnID, object searchID) { DataGridViewRow row = dgv.Row

我需要在我的
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;
    }
在上述情况下,如果我正在搜索“12:34:56.4”的
DateTime
对象,我想返回包含“12:34:56.345”的第二行


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

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

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

        return row;
    }
公共DataGridViewRow FindRow(DataGridView dgv,DateTime searchID) { DataGridViewRow行=dgv.Rows .Cast()
.Where(r=>((DateTime)r.Cells[“DateAdd”]”。您是否保证该集合返回的值。何处总是按DateAdd顺序?如果不是,则最后一个元素可能不是您想要的元素。可能确实需要添加order by。非常好的建议!谢谢。
public DataGridViewRow FindRow(DataGridView dgv, DateTime searchID)
    {
        DataGridViewRow row = dgv.Rows
            .Cast<DataGridViewRow>()
            .Where(r => ((DateTime)r.Cells["DateAdded"].Value <= searchID))
            .Last();

        return row;
    }