一個更簡單的例子可能是:在列表的元素替代變量
List <myElement> Elements;
Elements.Add(my1);
Elements.Add(my2);
MY1和MY2 eache有一個名爲string類型的myString
現在我想改變MY1的值的變量。 MyString的。但是,如果我改變它的值my2.myString得到改變。
希望這是更清楚一點,現在
我使用了一個列表,在C#它包含幾個要素。該列表具有一個自定義類,其中包含多個變量。
現在我想在一個列表中更改一個變量的值。但不幸的是,價值被取代不僅在這個,而且在這個列表的所有元素。
有關如何解決此問題的任何建議?
MyProjectElement File1 = this.Project.Elements[0];
MyProjectElement File2 = this.Project.Elements[1];
MyProject my1 = (MyProject)File1;
MyProject my2 = (MyProject)File2;
PageCount_F1 = my1.PageCount;
PageCount_F2 = my2.PageCount;
if (PageCount_F1 != PageCount_F2)
MessageBox.Show("The 2 files need to have the same file length", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
else
{
my1.IncludeAllPages = false;
my2.IncludeAllPages = false;
for(int i=1; i <= PageCount_F1; i++)
{
StringBuilder value1 = new StringBuilder();
StringBuilder value2 = new StringBuilder();
value1.Append("" + i);
value2.Append("" + (PageCount_F2-i+1));
MyProject my1new = new MyProject();
MyProject my2new = new MyProject();
my1new.Pages = value1.ToString();
my2new.Pages = value2.ToString();
my1.Pages = my1new.Pages;
my2.Pages = my2new.Pages;
this.Project.Elements.Add((myProjectElement)my1);
this.Project.Elements.Add((myProjectElement)my2);
((MyProject)this.Project.Elements[1]).Pages.Remove(0);
((MyProject)this.Project.Elements[i]).Pages.Remove(0);
((MyProject)this.Project.Elements[1]).Pages = "" + 1;
((MyProject)this.Project.Elements[PageCount_F2 - i + 1]).Pages = "" + (PageCount_F2 - i + 1);
((MyProject)this.Project.Elements[i-1]).Pages.Remove(0);
((MyProject)this.Project.Elements[i]).Pages.Remove(0);
((MyProject)this.Project.Elements[i - 1]).Pages = "" + i;
((MyProject)this.Project.Elements[i]).Pages = "" + (PageCount_F2 - i + 1);
}
這不是一個簡單明瞭的例子。你能用一個很短的例子來說明嗎?很難分辨出由於噪音而造成的所有元素。 –
問題與代碼發佈相比,您能否更清楚一點? –
對於它的價值,[這裏是所有''「+ x」和格式化和縮進固定的代碼](http://codepad.org/ibMxUgNn)。 – Ryan