オブジェクトをあるリストから別のリストにコピーし、元のリストを変更せずに編集したいと考えています。
Dim myList1 as New List(Of myObject)
myList1.Add(New myObject() With {.foo = 1, .bar = 0, .baz = 0})
Dim myList2 as New List(Of myObject)
myList2.AddRange(myList.Select(Function(x) x.bar = 1))
myList2.AddRange(myList.Select(Function(x) x.baz = 1))
希望myList2
:
{.foo = 1, .bar = 1, .baz = 0}, {.foo = 1, .bar = 0, .baz = 1}
実際myList2
:
{.foo = 1, .bar = 1, .baz = 0}, {.foo = 1, .bar = 1, .baz = 1}
私は何を間違っていますか?
LINQ がこれをネイティブに実行できず、この SO 投稿が推奨する.Clone()
ようなカスタム拡張機能を作成する必要があるとは信じがたいです。