用XML序列化/反序列化來做它會容易得多。
下面是一個完整的演示。它創建兩個字符的列表,將其序列化爲XML,然後將其反序列化爲新的列表。這至少會照顧到它的存儲方面。
using System.Collections.Generic;
using System.IO;
using System.Xml.Serialization;
namespace XmlDemo
{
public class CharacterAttributes
{
public string Name { get; set; }
public int Strength { get; set; }
public int Dexterity { get; set; }
}
class Program
{
static void Main(string[] args)
{
var characters = new List<CharacterAttributes>
{
new CharacterAttributes
{
Name = "Throgdor the Destroyer",
Strength = 5,
Dexterity = 10
},
new CharacterAttributes
{
Name = "Captain Awesome",
Strength = 100,
Dexterity = 9
}
};
SerializeToXML(characters);
var charactersReloaded = DeserializeFromXML(@"C:\temp\characters.xml");
}
static public void SerializeToXML(List<CharacterAttributes> characters)
{
var serializer = new XmlSerializer(typeof(List<CharacterAttributes>));
var textWriter = new StreamWriter(@"C:\temp\characters.xml");
using (textWriter)
{
serializer.Serialize(textWriter, characters);
textWriter.Close();
}
}
public static List<CharacterAttributes> DeserializeFromXML(string path)
{
var serializer = new XmlSerializer(typeof(List<CharacterAttributes>));
var textReader = new StreamReader(path);
var deserializedCharacters = new List<CharacterAttributes>();
using (textReader)
{
deserializedCharacters = serializer.Deserialize(textReader) as List<CharacterAttributes>;
}
return deserializedCharacters;
}
}
}
是什麼問題? – BrokenGlass 2011-06-05 03:50:44
只是有關如何做到這一點的任何建議。我知道如何從1個字符讀取數據,但不能讀取多個字符。 – Mark 2011-06-05 03:54:22
只是一個念頭:將數據存儲在一個XML結構中,然後加載到一個XmlDocument中......可能會過度殺傷.... – 2011-06-05 04:11:12