gpt4 book ai didi

c# - 如何在不使用对象的情况下检查 DataGridViewComboBoxColumn 中的项目?

转载 作者:太空宇宙 更新时间:2023-11-03 23:30:19 27 4
gpt4 key购买 nike

我需要检查某个值是否存在于 DataGridViewComboBoxColumn 中。问题是 DataGridViewComboBoxColumn.Items.Contains() 想要一个对象,我给它一个 long 值。有没有一种方法/方式可以获取项目的字符串/长值?

这就是我现在的逻辑(伪代码)。

if (DataGridViewComboBoxColumn.Items.Contains(long))
{
//Do Stuff
}

最佳答案

有很多方法可以做到这一点,这个简单而漂亮的方法可以为您解决问题:

字符串:

yourDataGridViewComboBoxColumn.Items.Cast<string>().Contains("your string value")

长:

yourDataGridViewComboBoxColumn.Items.Cast<long>().Contains(yourLongValue)

复杂对象:

如果Items在您的组合框列中很复杂,您应该这样做:

 yourDataGridViewComboBoxColumn.Items.Cast<YourComplexType>()
.Select(x => x.YourValueMemberField)
.Contains(yourLongValue);

例如,如果项目的类型为 Category和类别有 IdName你用了它的Id作为ValueMember ,你可以使用这样的代码:

 int value=10;
yourDataGridViewComboBoxColumn.Items.Cast<Category>()
.Select(x => x.Id)
.Contains(value);

这里的关键点是使用 Cast<T> 这可以帮助您将所有项目转换为所需的类型。

这样您甚至可以使用 Where() 搜索项目在 Cast<T>() 之后

关于c# - 如何在不使用对象的情况下检查 DataGridViewComboBoxColumn 中的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32505137/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com