Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.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# 基于C中的用户输入在DataGridView的列中搜索_C#_.net_Winforms_Datagridview - Fatal编程技术网

C# 基于C中的用户输入在DataGridView的列中搜索

C# 基于C中的用户输入在DataGridView的列中搜索,c#,.net,winforms,datagridview,C#,.net,Winforms,Datagridview,我试图将TextBox1中的用户输入与DataGridView中第一列的值匹配,如果该值与行的第一列匹配,则返回该行第二列的值 例如,我有两行数据: DataGridView1.Rows.Add(new object[] { 80000f, 1.000f, 1.120f }); DataGridView1.Rows.Add(new object[] { 85000f, 1.044f, 1.158f }); 如果用户在TextBox1中输入80000,我想返回1.000 我该怎么做?如果我正确理

我试图将TextBox1中的用户输入与DataGridView中第一列的值匹配,如果该值与行的第一列匹配,则返回该行第二列的值

例如,我有两行数据:

DataGridView1.Rows.Add(new object[] { 80000f, 1.000f, 1.120f });
DataGridView1.Rows.Add(new object[] { 85000f, 1.044f, 1.158f });
如果用户在TextBox1中输入80000,我想返回1.000


我该怎么做?

如果我正确理解了您的问题:

var rseult= this.dataGridView1.Rows.Cast<DataGridViewRow>()
                .Where(r=>(float)r.Cells[0].Value==float.Parse(textBox1.Text))
                .Select(r=>(float)r.Cells[1].Value)
                .FirstOrDefault();
80000的结果是1000
85000的结果是1.044

你说的指数是什么意思?你的意思是按该列排序吗?保存Col2->List的字典。可以使用一些包装用于特定用途。输入85000的结果是什么?它是1.044吗?如果不使用epsilon比较float,可能会导致问题,请参见或@qub1n,我认为C==运算符工作正常。我测试了1.00==float.Parse1.0000000和1f==float.Parse1.0000000,结果是真的。是的,就是这样,从Nuget安装提供程序。I实体框架特定设置将显示在web.config中。