C# 如何在不使用对象的情况下检查DataGridViewComboBoxColumn中的项?
我需要检查并查看C# 如何在不使用对象的情况下检查DataGridViewComboBoxColumn中的项?,c#,winforms,datagridview,datagridviewcombobox,C#,Winforms,Datagridview,Datagridviewcombobox,我需要检查并查看DataGridViewComboBoxColumn中是否存在某个值。问题是datagridviewcomboxcolumn.Items.Contains()想要一个对象,我给它一个long值。是否有一种方法/途径可以获取项目的字符串/长值 这就是我现在的逻辑(伪代码) 有很多方法可以做到这一点,这个简单而美丽的方法将为您带来好处: 字符串: yourDataGridViewComboBoxColumn.Items.Cast<string>().Contains("y
DataGridViewComboBoxColumn
中是否存在某个值。问题是datagridviewcomboxcolumn.Items.Contains()
想要一个对象,我给它一个long
值。是否有一种方法/途径可以获取项目的字符串/长值
这就是我现在的逻辑(伪代码)
有很多方法可以做到这一点,这个简单而美丽的方法将为您带来好处: 字符串:
yourDataGridViewComboBoxColumn.Items.Cast<string>().Contains("your string value")
yourDataGridViewComboBoxColumn.Items.Cast<long>().Contains(yourLongValue)
例如,如果项目的类型为Category
,类别具有Id
和Name
,并且您将其Id
用作ValueMember
,则可以使用如下代码:
int value=10;
yourDataGridViewComboBoxColumn.Items.Cast<Category>()
.Select(x => x.Id)
.Contains(value);
int值=10;
yourDataGridViewComboBoxColumn.Items.Cast()
.选择(x=>x.Id)
.包含(价值);
这里的关键点是使用,它可以帮助您将所有项强制转换为所需的类型
通过这种方式,您甚至可以在
Cast()
之后使用Where()
搜索项目。我尝试了“Long”版本,但刚得到一个“InvalidCastException”。这可能是因为所有项目都不长。其中的项目类型是什么?我在Contains()中有一个列表,我正在运行该列表 portion@Hooplehead24使用Cast
和Select(x=>(long)x[“YourValueMemberColumn”])
发布代码很有用,但出于教育目的,最好还包括一些关于如何解决问题的解释。
yourDataGridViewComboBoxColumn.Items.Cast<YourComplexType>()
.Select(x => x.YourValueMemberField)
.Contains(yourLongValue);
int value=10;
yourDataGridViewComboBoxColumn.Items.Cast<Category>()
.Select(x => x.Id)
.Contains(value);
DataGridViewComboBoxCell cell = dataGridView1.Rows[0].Cells[0] as DataGridViewComboBoxCell;
long value = 3434232;
if (cell.Items.Contains(value)) MessageBox.Show("Yes");