using System.Collections.Generic; using System.Linq; namespace Script.Excel { public class SaveDataInfo { public string id; public string title; public string subject; public List answerDatas = new List(); public string score; public string trueCount; public string falseCount; public string nullCount; public string accuracy; public string time; public class AnswerData { public string title; public string[] options; public string[] answers; public string[] result; } } public class SaveData { private Dictionary _saveDataInfos = new Dictionary(); public int Count => _saveDataInfos.Count; public List DataInfos => _saveDataInfos.Values.ToList(); public SaveDataInfo AddInfo(int id, string title, string subject) { var saveDataInfo = new SaveDataInfo(); saveDataInfo.id = id.ToString(); saveDataInfo.title = title; saveDataInfo.subject = subject; _saveDataInfos.Add(id, saveDataInfo); return saveDataInfo; } public void AddAnswer(int id, string title, string[] options, string[] answers) { if (_saveDataInfos.TryGetValue(id, out var info)) { var answerData = new SaveDataInfo.AnswerData(); answerData.title = title; answerData.options = options; answerData.answers = answers; info.answerDatas.Add(answerData); } } public void AddResult(int id, int index, string[] result) { if (_saveDataInfos.TryGetValue(id, out var info)) { info.answerDatas[index].result = result; } } public void SetScoreAndOther(int id, string score, string trueCount, string falseCount, string nullCount, string accuracy) { if (_saveDataInfos.TryGetValue(id, out var info)) { info.score = score; info.trueCount = trueCount; info.falseCount = falseCount; info.nullCount = nullCount; info.accuracy = accuracy; } } public void SetTime(int id, string time) { if (_saveDataInfos.TryGetValue(id, out var info)) { info.time = time; } } } }