Kon*_*ten 3 c# dictionary initialization anonymous-types
我正在尝试执行以下操作。
private static Dictionary<int, object> MAPS = new Dictionary<int, object>
{
{1, new {1, 2, 3}}
};
Run Code Online (Sandbox Code Playgroud)
基于MSDN,它没有按我期望的那样工作,所以我可以肯定的是,问题在于我正在使用匿名对象。假设我不想为我的东西创建一个新类型,并且仍然想将所有映射保留在同一词典中,该怎么办?
我已经看到了这个答案,但是现在它有点过时了,所以我希望框架中有一些新的东西。
如果要将ints 数组作为值,请尝试此操作。
private static Dictionary<int, object> MAPS = new Dictionary<int, object>
{
{1, new[] {1, 2, 3}}
};
Run Code Online (Sandbox Code Playgroud)
或者如果您想要匿名班级
private static Dictionary<int, object> MAPS = new Dictionary<int, object>
{
{1, new { a = 1, b = 2, c = 3}}
};
Run Code Online (Sandbox Code Playgroud)
或者更好的是不要使用object。如果需要特定的值,请使用int[]或List<int>来作为int类或结构的集合,或者声明一个类或结构。Tuple<int,int,int>如果int每个值只需要3 s,甚至可以使用。但是,总的来说,您应该尽量避免与之间进行强制转换object。