2014-12-04 80 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 
} 
相關問題