无法从lsitviewbox

时间:2017-02-18 06:07:24

标签: c#

在C#windows应用程序中,我正在比较两个不同的字符串数组,并且根据哪个数组大小很大,我在列表视图框中添加或删除项目。使用下面的代码我可以添加到列表视图没有任何问题,但我无法从中删除。

我收到一条错误消息。

  

"错误CS1503,参数1:无法转换为'字符串'到' System.Windows.Forms.ListViewItem'"

以下是我的代码摘录

        string[] currentFilesList = GetFileList();  
        if (currentFilesList.Length > prevFilesList.Length)
        {
            var addedList = currentFilesList.Except(prevFilesList).ToArray();
            foreach (var item in addedList)
            {
                listView1.Items.Add(item);
            }
        }
        if (currentFilesList.Length < prevFilesList.Length)
        {
            var removedList = prevFilesList.Except(currentFilesList).ToArray();
            foreach (string item in removedList)
            {                   
                    listView1.Items.Remove(item);    //I get error here on "item" Argument 1: cannot convert from 'string' to 'System.Windows.Forms.ListViewItem'"                    
            }
        }
        prevFilesList = currentFilesList;

我尝试了字符串和var,但结果相同。

2 个答案:

答案 0 :(得分:0)

您可以按

删除项目
  foreach (string item in removedList)
{
        var toRemove =listView1.Items.Find(item);
        if (toRemove != null)
        {
           listView1.Items.Remove(toRemove);
        }
}

或者您可以使用RemoveByKey

foreach (string item in removedList)
    {

               listView1.Items.RemoveByKey(item);

    }

答案 1 :(得分:0)

您可以使用linq

尝试此操作
var newlist = listView1.Cast<ListViewItem>().Where(p=>p.Text.Contains("OBJECT")).ToList().ForEach(listBox1.Items.Remove);