【发布时间】:2014-10-12 16:19:14
【问题描述】:
我需要一个辅助函数来将"1=alice;2=bob;3=charlie" 之类的字符串转换为Dictionary<int, string>,并将"1=true;2=false;3=true" 之类的字符串转换为Dictionary<int, bool> 等。
为此,我编写了很多辅助函数,它们基本上是相互复制和粘贴的:
private static void load(Dictionary<int, string> dict, string s)
{
dict.Clear();
string[] items = s.Split(';');
foreach (string item in items)
{
if (item.Contains("="))
{
string[] kv = item.Split('=');
dict[int.Parse(kv[0])] = kv[1];
}
}
}
private static void load(Dictionary<int, bool> dict, string s)
{
dict.Clear();
string[] items = s.Split(';');
foreach (string item in items)
{
if (item.Contains("="))
{
string[] kv = item.Split('=');
dict[int.Parse(kv[0])] = bool.Parse(kv[1]);
}
}
}
private static void load(Dictionary<int, int> dict, string s)
{
dict.Clear();
string[] items = s.Split(';');
foreach (string item in items)
{
if (item.Contains("="))
{
string[] kv = item.Split('=');
dict[int.Parse(kv[0])] = int.Parse(kv[1]);
}
}
}
还有更多,关于其他数据类型,例如long、DateTime 等。
有没有办法只拥有一个辅助函数?我试过Dictionary<object, object>,但没用。
【问题讨论】:
标签: c# dictionary