私のソフトウェアは、ファイルを暗号化および復号化するように設計されています。ユーザーは、処理するファイルをListViewコントロールにロードします。コントロールでは、各アイテムは、プロセスのタイプ(ENCRYPTまたはDECRYPT)という1つのサブアイテムを持つファイルパスです。
「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でこれを行う方法を知りたいです。