比较复选框项和数组
本文关键字:数组 复选框 比较 | 更新日期: 2023-09-27 18:07:12
所以,我有一个checklistbox,包含字符串值,如:
- asdf - 432 - qwer vcxz
- rewq - 123 - qwer vcxz
- rety - 323 - qw65 vcyt
- kjhf - 232 - ouyy bjkl
- …
我有一个数组(onlineVaults),其中包含一些相同的值,在checklistbox,如:
- rety - 323 - qw65 vcyt
- asdf - 432 - qwer vcxz
现在我只想检查数组中checklistbox中的那些值。
for (int i = 0; i < checklistbox.Items.Count; i++)
{
if (onlineVaults.Contains(checklistbox.Items[i]))
{
checklistbox.SetItemChecked(i, true);
}
}
我试着像这样弄清楚,但它不起作用。它只检查一个值,不检查其他值。我该怎么做?
试试这个
var checklistbox = new List<string>
{
"asdf-432-qwer-vcxz",
"rewq-123-qwer-vcxz",
"rety-323-qw65-vcyt",
"kjhf-232-ouyy-bjkl"
};
var onlineVaults = new List<string>
{
"rety-323-qw65-vcyt",
"asdf-432-qwer-vcxz"
};
for (int i = 0; i < checklistbox.Items.Count; i++)
{
checklistbox.SetItemChecked(i, onlineVaults.Contains(checklistbox.Items[i]));
}
编辑:要忽略大小写和微调值,请尝试
for (int i = 0; i < checklistbox.Items.Count; i++)
{
checklistbox.SetItemChecked(i, IsValueExist(onlineVaults, checklistbox.Items[i]));
}
private bool IsValueExist(List<string> list, string value)
{
return list.Any(x => string.Compare(x.Trim(), value.Trim(), StringComparison.InvariantCultureIgnoreCase) == 0);
}