日期:2014-05-20  浏览次数:20826 次

vb.net linq 能够对listviewitem进行操作么
我是linq小白,想请教个问题

我现在需要根据某几个显示选项来设置listview的显示内容。比如说可以显示Category=1的所有项目,可以显示Category=1 or Category=2...的所有项目。

我的想法是把所有项目(如果我的项目clsA)放到一个大的collection里面,然后通过linq作其相应属性Category查找,把结果显示在listview里面。我看到listview里面.items.addrange可以对应一个listitem数组;同时listviewitemcollection本身就是个类。

我会用最简单的for each loop,请问如果用linq怎么写比较好

谢谢

------解决方案--------------------
data.ForEach(listView1.Items.Add(x));
=>
data.ForEach(x => listView1.Items.Add(x));
------解决方案--------------------
当要显示多个Category时 可以先将Category ID放在一个数组内:
var list=new string[]{"1","2","3"};

var data = listView1.Items.Cast<ListViewItem>().Where(x =>list.Contains(x.SubItems[1].Text)).ToList();
listView1.Items.Clear();
data.ForEach(x=>listView1.Items.Add(x));