c# - IEnumerable 到 Listview

标签 c# .net winforms

我想写一个过滤listview的方法

IEnumerable<ListViewItem> CurrentList;
CurrentList = ListViewExemple.Items.Cast<ListViewItem>(); 
var result = CurrentList.Select(i => i.Text.Contains(SearchTxtBox.Text));

现在如何将“结果”项添加到已清除的 ListView 中

最佳答案

您必须记住,ListViewItem 有一个所有者,您需要复制该项目以将其放入另一个 ListView 中。使用其 Clone() 方法很容易做到。或者将它从一个移动到另一个,在这种情况下不太可能。所以你可能想要这个:

    var matches = listView1.Items.Cast<ListViewItem>()
                  .Select(item => (ListViewItem)item.Clone())
                  .Where(item => item.Text.Contains(SearchTxtBox.Text));
    listView2.Items.Clear();
    listView2.Items.AddRange(matches.ToArray());

关于c# - IEnumerable 到 Listview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26256287/

相关文章:

c# - 使用 EF changetracker 手动获取更改集?

c# - 为什么发布 Azure Function 后出现内部服务器错误?

c# - .NET 中是否有类似 Apple 的 UIWebView 的类?

vb.net - KeyDown 事件未通过 .NET WinForms 触发?

winforms - 我可以在 C# 中获取某种类型的事件对象的实例吗?

vb.net - Winforms 开发 - 关于如何改进 UI 外观的任何建议

c# - 如何获取 HTTP Web 请求以返回完整源代码

c# - 如何忽略 List<string> 中的区分大小写

.net - 挣扎于枚举标志

c# - 如何为多个进程共享一个 SQL Server CE 数据库文件 (.sdf)?