IEnumerable Datarow とカスタム クラスの間の共通フィールドを交差させることで、オブジェクトのリストを取得する方法を見つけようとしました。
データセットをロードし、DataSetExtensions アセンブリを使用して IEnumerable Datarow() に変換します
Dim listaRows = ds.Tables(0).AsEnumerable().Cast(Of DataRow).ToList()
次に、データ行フィールドを横断するために使用できるオブジェクトをロードしたカスタム クラスのリストがあります。
基本的に、カスタム クラスにはプロパティと呼ばれるParsedFileName
プロパティがあり、このアイテムはプロパティ name のデータ行に存在しますFilename
。
Ienumerable Datarow に存在しない要素 (ファイル名フィールドに基づく) がリストに存在することを検出する linq クエリを作成する方法を見つける必要があります。
List<T>.Except
同じクラスの2番目のIenumerableコレクションである引数を受け取るため使用できません。
クエリがどのようになるかを考えようとしていましたが、このようなものしか取得できませんでした。equals not except を使用しているため、有効ではありません。
私はこのようなことを試みていました:
Dim list As List(Of sftpClass.SftpObj) = _
listaFichero.Select(Function(l) Not l.FicheroParsed. _
Equals(listaRows.Select(Function(r) _
r.Field(Of String)("FICHERO")))).ToList