如何将 C# Custom Class List<> 保存到文件流?
How to save a C# Custom Class List<> to file stream?
我想在文件流(在 Unity3d 中)中保存自定义 class 列表 (C#)。我已经使用以下代码将 [Serializable] class 保存到内存中:
[Serializable]
public class GameData
{
public int Score_SR;
public float ChaseCredits_SR;
}
保存数据的方法如下:
public void Save()
{
BinaryFormatter bf = new BinaryFormatter();
FileStream file = File.Create(Application.persistentDataPath + "/chaserace.cr");
// Save data here from local to orignal data path storage i.e /chaserace.cr
GameData data = new GameData();
data.Score_SR = Score;
data.ChaseCredits_SR = ChaseCredits;
// this take the "data" class data and write it to our "chaserace.cr" file
bf.Serialize(file , data);
file.Close();
}
然后使用方法Load加载数据。
但是,现在我想保存自定义 class "RawData" 的 List<>。我试过对列表做同样的事情,但做不到。也许代码中会有一个适用于 List<> 的编辑。
这是 class 我想保存到内存中的列表:
[Serializable]
public class RawData{
public string key;
public int level;
public string value;
public RawData(string key_,string value_,int level_){
key = key_;
level = level_;
value = value_;
}
}
当我尝试加载数据时,出现错误:
BinaryFormatter bf = new BinaryFormatter();
FileStream file = File.Open(Application.persistentDataPath + "/chaserace.cr", FileMode.Open);
RawData rawData = (RawData)bf.Deserialize(file);
List<RawData> rawDataList=rawData; //Here is conversion error
file.Close();
您必须解析到列表:
List<RawData> rawDataList = new List<RawData>() { rawData };
因为rawData是单个对象,但是你想转换成一个List
例如:
int a = 1;
List<int> b = a; //Here will conversion error
我想在文件流(在 Unity3d 中)中保存自定义 class 列表 (C#)。我已经使用以下代码将 [Serializable] class 保存到内存中:
[Serializable]
public class GameData
{
public int Score_SR;
public float ChaseCredits_SR;
}
保存数据的方法如下:
public void Save()
{
BinaryFormatter bf = new BinaryFormatter();
FileStream file = File.Create(Application.persistentDataPath + "/chaserace.cr");
// Save data here from local to orignal data path storage i.e /chaserace.cr
GameData data = new GameData();
data.Score_SR = Score;
data.ChaseCredits_SR = ChaseCredits;
// this take the "data" class data and write it to our "chaserace.cr" file
bf.Serialize(file , data);
file.Close();
}
然后使用方法Load加载数据。 但是,现在我想保存自定义 class "RawData" 的 List<>。我试过对列表做同样的事情,但做不到。也许代码中会有一个适用于 List<> 的编辑。
这是 class 我想保存到内存中的列表:
[Serializable]
public class RawData{
public string key;
public int level;
public string value;
public RawData(string key_,string value_,int level_){
key = key_;
level = level_;
value = value_;
}
}
当我尝试加载数据时,出现错误:
BinaryFormatter bf = new BinaryFormatter();
FileStream file = File.Open(Application.persistentDataPath + "/chaserace.cr", FileMode.Open);
RawData rawData = (RawData)bf.Deserialize(file);
List<RawData> rawDataList=rawData; //Here is conversion error
file.Close();
您必须解析到列表:
List<RawData> rawDataList = new List<RawData>() { rawData };
因为rawData是单个对象,但是你想转换成一个List
例如:
int a = 1;
List<int> b = a; //Here will conversion error