- 元のリスト(fooList)余分な情報(fooWithExtList)が含まれてい
- リスト
しかし、別のリストにテキストを連結すると、元のリストの情報も更新される理由がわかりません。
var fooDataList = new List<Foo>();
fooDataList.Add(new Foo { Bar = "Test1" });
fooDataList.Add(new Foo { Bar = "Test2" });
fooDataList.Add(new Foo { Bar = "Test3" });
fooDataList.Add(new Foo { Bar = "Test4" });
var fooList = new List<Foo>();
var fooWithExtList = new List<Foo>();
//assign foodata to fooList
fooDataList.ForEach(fdl => fooList.Add(fdl));
//assign foodata to fooWithExtList
fooDataList.ForEach(fdl => fooWithExtList.Add(fdl));
//set the fooWithExtList with extra info
fooWithExtList.ForEach(fwel => fwel.Bar = fwel.Bar + "ext");
//merge the list
fooList = fooList.Concat(fooWithExtList).ToList();
結果:
Test1ext Test2ext Test3ext Test4ext Test1ext Test2ext Test3ext Test4ext
期待:
Test1とTest2をここで
コードですここTEST3 TEST4 Test1ext Test2ext Test3ext Test4ext
ドットネットフィドル:https://dotnetfiddle.net/0nMTmX
あなたは同じ_reference_を使用しているため、3つのリストがすべてthを指しています同じデータ。参照型と値型の違いを理解する必要があります。 – Steve
[C#の概念:値と参照の種類]のようなもの(http://www.albahari.com/valuevsreftypes.aspx) – Steve