C# - SortedList Erweiterung

SeeSharpNewBee

Erfahrenes Mitglied
Hi,

ich habe folgendes Problem, und zwar ich erstelle XML Dateien, mit:

Code:
					tw = new XmlTextWriter(xmlFile,Encoding.GetEncoding("ISO-8859-1"));
					
					try
					{
						tw.WriteStartDocument(true);
						tw.WriteStartElement("configfile");
						tw.WriteComment("Config Datei für " + categoryName.ToString());
						tw.WriteStartElement(categoryName);
						tw.WriteAttributeString("nsp","root",categoryPraefix.ToString());

						//alle elemente aus der Hashtable in
						foreach(DictionaryEntry val in valueList)
						{
							tw.WriteStartElement("attribute");
							tw.WriteAttributeString("pfx",categoryPraefix.ToString());
							tw.WriteAttributeString("name",val.Key.ToString());
							tw.WriteAttributeString("value",val.Value.ToString());
							tw.WriteEndElement();
						}
						
						tw.WriteEndElement();
						tw.WriteEndElement();
						tw.WriteEndDocument();
						tw.Flush();
						tw.Close();

Das funktioniert auch ganz gut, aber wenn ich die XML Datei erweitern möchte, also einen weiteren Block hinzufügen möchte, lese ich die alte XML Datei aus, befülle eine SortedList mit den Daten und beim Versuch die neuen Daten auch anzufügen, bekomme ich immer den Fehler Failed to compare two elements in the array und ich weiß nicht warum. Kann mir bitte jemand sagen warum ich diesen Fehler bekomme, bzw. wie ich ihn nicht mehr bekomme? Danke
 

Norbert Eder

Erfahrenes Mitglied
Schon mal den Debugger angeworfen und den Code Schritt für Schritt durchgegangen um zu sehen WO der Fehler auftritt? Eventuell willst einen null-Wert hineinschreiben oder ähnlichen Müll. Tu das mal.
 

Christian Kusmanow

Erfahrenes Mitglied
Damit ein Objekt in einem Array sortiert werden kann, muss es dafür das IComparable Interface implementieren.
Wenn also ein Objekt dieses Interface nicht implementiert oder Objekte in dem Array null sind,
wird eine derartiger Ausnahmefehler geworfen. Also mach das mal was der Norbert vorgeschlagen hat.
 

Neue Beiträge