C# 如何检查listView项是否包含FileInfo变量?
错误发生在:C# 如何检查listView项是否包含FileInfo变量?,c#,.net,winforms,C#,.net,Winforms,错误发生在: FileInfo fi = new FileInfo(files[i]); if (listView1.Items.Contains(fi.FullName)) 错误2参数1:无法从“字符串”转换为“System.Windows.Forms.ListViewItem” 及 错误1“System.Windows.Forms.ListView.ListViewItemCollection.Contains(System.Windows.Forms.ListViewItem)”的最佳重
FileInfo fi = new FileInfo(files[i]);
if (listView1.Items.Contains(fi.FullName))
错误2参数1:无法从“字符串”转换为“System.Windows.Forms.ListViewItem”
及
错误1“System.Windows.Forms.ListView.ListViewItemCollection.Contains(System.Windows.Forms.ListViewItem)”的最佳重载方法匹配具有一些无效参数
在我的代码底部,我有这样一句话:
listView1.Items.Contains(fi.FullName)
private void按钮5_单击(对象发送者,事件参数e)
{
如果(button5.Text==“取消选择所有项目”)
{
对于(int i=0;i
但是listView1在使用listBox之前没有选择属性SetSelected,但是现在我正在使用listView,有什么方法可以克服它吗?试试这个:
private void button5_Click(object sender, EventArgs e)
{
if (button5.Text == "Unselect All Items")
{
for (int i = 0; i < listView1.Items.Count; i++)
{
listView1.SetSelected(i, false);
}
button5.Text = "Select All Items";
}
else
{
if (listView1.Items.Count == 0)
{
}
else
{
for (int i = 0; i < listView1.Items.Count; i++)
{
listView1.SetSelected(i, true);
}
button5.Text = "Unselect All Items";
}
}
}
if(listView1.Items.Cast().Any(item=>item.Text==fi.FullName))
{
//随便你
}
试试这个:
private void button5_Click(object sender, EventArgs e)
{
if (button5.Text == "Unselect All Items")
{
for (int i = 0; i < listView1.Items.Count; i++)
{
listView1.SetSelected(i, false);
}
button5.Text = "Select All Items";
}
else
{
if (listView1.Items.Count == 0)
{
}
else
{
for (int i = 0; i < listView1.Items.Count; i++)
{
listView1.SetSelected(i, true);
}
button5.Text = "Unselect All Items";
}
}
}
if(listView1.Items.Cast().Any(item=>item.Text==fi.FullName))
{
//随便你
}
您需要在这里使用linq查询:listView1.Items.Where(x=>x.Fullname==fi.Fullname);将x.FullName更改为要比较的任何属性。您可以对返回值进行null检查,甚至可以执行linq.ANy来返回bool。您需要在此处使用linq查询:listView1.Items.Where(x=>x.Fullname==fi.Fullname);将x.FullName更改为要比较的任何属性。您可以对返回值进行null检查,甚至可以执行linq.ANy来返回bool。