2011-01-14 23 views
0

私はPythonプログラマであり、VB.NET newbieはPythonからVB.NET(3.5)にアプリケーションを変換しています。 PythonでVB.NETでのデータ構造の選択と比較の比較

、私はこのような結果と2つのデータセット上で実行タプルのリストを返す関数があります。

data1 = [(1,"a",2),(5,"c",7)...] 
data2 = [(1,"a",2),(5,"x",7)...] 

をそれから私は、2つのデータセットが同一であるかどうかを確認します。 Pythonで は、私はこのような等価性をチェック:

"Equal" if data1 == data2 else "Not Equal" 

私はVB.NETでデータを構造化する最も簡単な方法を知ってほしいです。

VB.NETの各データセットの正しいデータ構造はList(of Something)です。

各データ項目を保持するクラスを作成するか、より簡単な方法がありますか?もし私がそうしたら、2つのインスタンスが同じデータを保持するかどうかを判断するカスタム方法が必要でしょうか?

平等のために2つのデータセットを比較する最も簡単な方法は何ですか?

答えて

1

Tuple(Of T1, T2, T3)ジェネリックタイプを使用することも、独自のクラスを作成することもできます。
いずれにしても、クラスのためにIEqualityComparer(Of T)を作成する必要があります。 set1.SequenceEqual(set2, New MyComparer())かどうかを確認することができます。

独自のクラスを作成する場合は、IEqualityComparerを作成する代わりに、Equals()GetHashCode()を上書きできます。

+0

ありがとう。私はこれを見て、明らかにTupleは.NET 4.0の新機能です。 .NET 3.5を使用していることを示すために更新しました。 – user483263

+0

それから自分のクラスを作る必要があります。項目が関数内に完全に存在する場合は、匿名型を使用することもできます。 (匿名型は 'Equals'と' GetHashCode'を実装しているので、 'IEqualityComparer'は必要ありません。 – SLaks

関連する問題