にリストを割り当てなければならなかった人はいますかISet
? これを実行するにはどうすればいいですか?
クラスがあると言う
class Foo
{
ISet<Item> Items { get; set; }
}
今、私は次のことをやりたいです:
var foo = new Foo() { Items = new List<Item>() { new Item() } }
ベストアンサー1
List<Item> myList = ...
foo.Items = new HashSet<Item>( myList );
Set
は とは異なり、すべての要素を 1 回だけ含める必要があることに注意してくださいList
。したがって、myList
にいくつかの要素のコピーが複数含まれている場合、1 つを除くすべてのコピーはセットに含まれません。
Equals
要素の等価性 (複数のコピーを検出するため) は、 メソッドとメソッドによって定義されますGetHashCode
。等価性の別の定義を使用する場合は、HashSet
を受け取るコンストラクターのオーバーロードを使用できますIEqualityComparer<Item>
。