这是不好的做法吗?或者这样做完全没问题
private readonly List<KeyValuePair<GameType, KeyValuePair<string, string>>> _tempStats = new List<KeyValuePair<GameType, KeyValuePair<string, string>>>();
顺便说一句,GameType是一个枚举器。
我从一个表中下载的数据有一些不同的GameTypes,其中有两个与之关联的字符串。因此,它将解析数据并确定要分配的GameType,并找到表Key和它的Value。它工作,它存储信息,我能够毫无问题地检索它,但它似乎有一个KeyValuePair列表与KeyValuePair不对,但也许它是。使用元组是一种更好的方法吗?
我目前对列表的使用
private void ParseNodeText(string nText, GameType gmode)
{
_tempStats.Clear();
var reader = new StringReader(nText);
while((nText = reader.ReadLine()) != null)
{
nText = nText.Replace(" ", "");
if (nText == "")
{
continue;
}
string statType = Regex.Replace(nText, "[^A-Za-z]", "");
string statValue = Regex.Replace(nText, "[^0-9]", "");
// Console.WriteLine(gmode + " : Found line with Type of {0} and a value of {1}",statType,statValue);
_tempStats.Add(new KeyValuePair<GameType, KeyValuePair<string, string>>(gmode, new KeyValuePair<string, string>(statType, statValue)));
}
}
答案 0 :(得分:0)
您的解决方案很好,但不是那么好读。
你可以这样做:
private readonly List<GameStats> _tempStats = new List<GameStats>();
和GameStats是一个自己编写的简单类:
public class GameStats
{
public GameType Type { get; set; }
public string StatType { get; set; }
public string StatValue { get; set; }
public GameStats(GameType gameType, string statType, string statValue)
{
this.Type = gameType;
this.StatType = statType;
this.StatValue = statValue;
}
}
并将其添加到您的列表中,如:
_tempStats.Add(new GameStats(gmode, statType, statValue));
我认为,这看起来不错,并会做到。