在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,但结果相同。
答案 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);