我有一个方法:
FillListBox();
我从不同的地方调用这个方法..但有时它会发生,事情被加载了两次!
现在我正在尝试做类似的事情:
if (listBox.Items[1].ToString() == "hello")
{
DO NOT FILL
}
else
{
FILL
}
这不行! :(
Fault: InvalidArgument=Value of '1' is not valid for 'index'.
Parameter name: index
类似的东西:
if(listBox.Items.Contains("hello"))
{
DONT FILL
}
也不行:(
我该怎么办?
答案 0 :(得分:6)
试试这个
if(ListBox.NoMatches != listBox.FindStringExact("StringToFind"))
{
listBox.Items.Add("StringToAdd");
}
或者只是尝试这个
bool found = false;
foreach (var item in listBox.Items)
{
if(item.ToString().Equals("StringToAdd"))
{
found = true;
break;
}
}
if(!found)
listBox.Items.Add("StringToAdd");
答案 1 :(得分:3)
尝试:
if ( listBox.Items.Cast<ListItem>().Any(x => x.Text == "hello"))
答案 2 :(得分:2)
这样做:
var item = listBox.Items.FindByValue("hello") // or FindByText
if (item != null)
{
DONT FILL
}
答案 3 :(得分:1)
你应该尝试一下
foreach(ListItem item in listBox)
{
if(item.Value == "YourFilter")
{
DONT FILL
}
}
如果您的项目是ASP
你应该做
foreach(object item in listBox)
{
if(item == "YourFilter")
{
DONT FILL
}
}
如果它是WPF,不确定你在谈论哪个ListBox。 显然这不是最优雅的解决方案,但我认为如果你刚开始学习C#是合适的。
答案 4 :(得分:1)
我解决了问题..我刚使用myListBox.Items.Clear();
答案 5 :(得分:0)
listBox.Items.Contains("hello")
应该可以正常工作。
答案 6 :(得分:0)
String newValue = "hello";
if (listBox1.Items.Cast<Object>().Any(x => x.ToString() == newValue))
{
return;
}