我的软件旨在加密和解密文件。用户将要处理的文件加载到ListView控件中。在控件中,每个项目都是具有一个子项目的文件路径,即进程类型(ENCRYPT或DECRYPT)。如何使用LINQ获取具有特定SubItem的所有项目?
我需要获得具有“ENCRYPT”子项的所有ITEMS(文件路径)的列表,最好使用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做到这一点。
不要再使用'ArrayList'。改用强类型的“List(Of T)”。 –
我根本不想使用'ArrayList'或'List(Of T)'。我想为我的软件使用LINQ。但谢谢你的提示。 :) – durge
你说“这不起作用”,但你不说什么没有用。 – rossisdead