Ich verwende ArrayList in C#, um einige Dinge zu tun. Ich habe 2 ArrayLists (align und am besten) und in einer bestimmten Zeit mache ich am besten = align innerhalb einer "für" Routine.C#: ArrayList.Clear() löscht das falsche Array
Das Problem ist, am Ende der Schleife, die ich ausrichten.Clear, aber in dieser Zeit wird auch das Array "beste" gelöscht. Nach der Schleife, wenn ich das Array "best" verwenden muss, bekomme ich Probleme, weil es gelöscht ist und ich versuche, auf seinen Index zuzugreifen.
Was ist das Problem? Hier
ist ein Stück von meinem Code:
public string AntColony()
{
ArrayList align = new ArrayList();
ArrayList best = new ArrayList();
for(int z=0;z<n_ants;z++)
{
//do the things i have to do
//full the array "align" with something (this will have two "adds", so, this array is a 2 lines array)
score = Score(align);
UpdatePhero(tao, path, score);
if (score > score_before)
{
score_before = score;
best = align;
}
align.Clear(); //clear the array align
}
string s = best[0].ToString() + "\r\n\r\n" + best[1].ToString() + "\r\n\r\n Number of matches: " + n_matches + "\r\n\r\n Score: " + score;
return s;
}
Thank you!
Sie machen 'best' Verweis zu verweisen' align '. C# basiert auf Referenzen! –
Danke für Ihre Antwort. Und was kann ich tun, um das zu lösen? Ich meine, welche Strategie? Wie auch immer, ich muss am besten ausrichten und am Ende ausrichten. –
Ihre Anfrage wurde bereits von einem Autor in der Antwort beantwortet. Viel Glück. –