我創建了一個屬性爲String的對象,另一個是List<String>
。 我也創建了一個static List<MyObject>
,我添加了所有的對象。 現在我的問題是第二個屬性被覆蓋。自己的類對象屬性被取代
比如我有3個對象:
Object1: "Name"; List with 3 Strings
Object2: "Name2"; List with 2 Strings
Object3: "Name3"; List with 5 Strings
如果我現在將它們添加到我的對象列表,它看起來像這樣
Name; List with 5 Strings
Name2; List with 5 Strings
Name3; List with 5 Strings
它重寫第二個屬性中的所有其他對象列表。
代碼:
for (int i = 0; i < 100; i++)
{
if (elo.ReadObjMask(i) > 0)
{
var iRet = elo.PrepareObjectEx(0, 0, i);
maskenname = elo.ObjMName();
if (maskenname != "")
{
for (int e = 0; e < 50; e++)
{
string eigenschaft = elo.GetObjAttribName(e);
if (eigenschaft != "" && eigenschaft != "-")
{
eigenschaften.Add(eigenschaft);
}
}
allMasks.Add(maskenname);
}
else
{
// Do nothing
}
EloMask emask = new EloMask(maskenname, eigenschaften);
staticVariables.allMask.Add(emask);
eigenschaften.Clear();
}
}
這裏是我的對象類:
public class EloMask
{
public string name;
public List<String> eigenschaften;
public EloMask(string iname, List<String> ieigenschaften)
{
name = iname;
eigenschaften = ieigenschaften;
}
}
你需要指定你的「對象」類和你如何實例化後,加入到靜態列表中的代碼。 – Thangadurai
staticVariables.allMask.Add(emask);在這部分我將它添加到我的靜態列表 – saamii
我相信: EloMask emask = new EloMask(maskenname,eigenschaften); 傳遞eigenschaften作爲參考,所以當它被改變時,所有其他人。 您需要在寫入之前啓動列表的新實例。 eigenschaften =新列表; –