我有一个关于listView的快速问题以及如何检查ListView(包含空项)是否具有某个字符串?
以下是添加到特定项目的代码(在listView的第5列下)。它基本上会检查该项目是否出现在Google搜索中。如果是,它会对该特定行写“是”,如果不是,则将其留空:
string google2 = http.get("https://www.google.com/search?q=" + textBox1.Text + "");
string[] embedid = getBetweenAll(vid, "type='text/html' href='http://www.youtube.com/watch?v=", "&feature=youtube_gdata'/>");
for (int i = 0; i < embedid.Length; i++)
{
if (google2.Contains(embedid[i]))
{
listView1.Items[i].SubItems.Add("Yes");
}
}
现在我要做的是检查某个列是否包含说“是”的项目。如果它确实给它们上色,如果没有那么。
以下是代码:
if (i.SubItems[5].Text.Contains("Yes"))
{
labelContainsVideo.ForeColor = System.Drawing.Color.Green;
}
我的问题是我一直收到InvalidArgument=Value of '5' is not valid for 'index'.
我的预感是第5列中有空项目可能会弄乱它,但我不知道。
有关如何解决这个问题的想法吗?
答案 0 :(得分:1)
检查项目以查看SubItem Collection是否具有正确的值数。
即
int threshold = 5;
foreach (ListViewItem item in listView1.Items)
{
if (item.SubItems.Count > threshold)
{
if (item.SubItems[5].Text.Contains("Yes"))
{
// Do your work here
}
}
}