我的软件旨在加密和解密文件。用户将要处理的文件加载到 ListView 控件中。在控件中,每一项都是文件路径,其中包含一个子项、进程类型(ENCRYPT 或 DECRYPT)。
我需要获取具有“ENCRYPT”子项的所有项目(文件路径)的列表,最好使用 LINQ。目前,我的代码如下所示:
Dim enclist As New ArrayList()
For i As Int32 = 0 To (lvwLoad.Items.Count - 1)
If lvwLoad.Items(i).SubItems(1).Text = "ENCRYPT" Then
enclist.Add(lvwLoad.Items.Item(i).Text)
count += 1
End If
Next
我试过这个:
Dim list As IEnumerable(Of String) = From item In lvwLoad.Items
Where item.SubItems(1).Text = "ENCRYPT"
但这个语句无法访问SubItems()
大批。我知道我可能缺少一些简单的东西,但我无法弄清楚。
编辑:
我知道我可以这样做:
Dim enclist As New List(Of String)
For Each item As ListViewItem In lvwLoad.Items
If item.SubItems(1).Text = "ENCRYPT" Then
enclist.Add(item.Text)
End If
Next
但我真的很想知道如何使用 LINQ 来做到这一点。
尝试下面的代码,您需要将项目投射到ListViewItem
这样您就可以访问SubItems
Dim list = From item In lvwLoad.Items.Cast(Of ListViewItem) () _
Where item.SubItems(1).Text = "ENCRYPT"
Select item.Text
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)