2014-12-04 47 views
0
FileInfo fi = new FileInfo(files[i]); 
if (listView1.Items.Contains(fi.FullName)) 

的错误是:如何检查listView项是否包含FileInfo变量?

listView1.Items.Contains(fi.FullName) 

错误2参数1:无法从 '串' 到 'System.Windows.Forms.ListViewItem'

而且

错误1转换'System.Windows.Forms.ListView.ListViewItemCollection.Contains(System.Windows.Forms.ListViewItem)'的最佳重载方法匹配有一些无效参数

而在我的代码的底部,我有这样的:

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"; 
       } 
      } 
     } 

但ListView1的这么想的具有这样的性质之前,我有ListBox中的setSelected但现在,我使用的ListView有没有什么办法来克服它?

+0

这里需要使用LINQ查询:listView1.Items.Where(X => x.Fullname == fi.FullName);将x.FullName更改为想要比较的属性。你可以null检查返回值,甚至可以linq.ANy返回一个布尔值。 – Botonomous 2014-12-04 13:36:22

回答

4

试试这个:

if (listView1.Items.Cast<ListViewItem>().Any(item=>item.Text == fi.FullName)) 
{ 
    // whatever you want 
} 
相关问题