我在C#3.5中有一个代码。我想知道postActivity
的类型是什么。我知道这是一种字典类型,但我找不到确切的类型。
这是我的代码。
var postActivity = new[]
{
new {Key="ActivityId63",
Value=new {LikeActId= 61, CommentActId = 63, CommentLikeActId = 79 }},
new {Key="ActivityId67",
Value=new {LikeActId= 65, CommentActId = 67, CommentLikeActId = 78}},
new {Key="ActivityId75",
Value=new {LikeActId= 73, CommentActId = 75, CommentLikeActId = 80}},
new {Key="ActivityId83",
Value=new {LikeActId= 82, CommentActId = 83, CommentLikeActId = 84}}
}.ToDictionary(kv => kv.Key, kv => kv.Value);
int a = postActivity["ActivityId63"].LikeActId;
这很好但我的问题是 - 这是一个var
类型,但我希望这个整个值在构造函数中初始化,我想将postsetivity作为全局变量。
答案 0 :(得分:4)
如果您使用的是匿名类型,则必须使用var。要摆脱它,请创建class
public class LinkAct
{
public int LinkActId { get; set; }
public int CommentActId { get; set; }
public int CommentLikeActId { get; set; }
}
然后您的字典将为Dictionart<string, LinkAct>
Dictionary<string, LinkAct> postActivity = new[]
{
new {Key="ActivityId63", Value=new LinkAct {LikeActId= 61, CommentActId = 63, CommentLikeActId = 79 }},
new {Key="ActivityId67", Value=new LinkAct {LikeActId= 65, CommentActId = 67, CommentLikeActId = 78}},
new {Key="ActivityId75", Value=new LinkAct {LikeActId= 73, CommentActId = 75, CommentLikeActId = 80}},
new {Key="ActivityId83", Value=new LinkAct {LikeActId= 82, CommentActId = 83, CommentLikeActId = 84}}
}.ToDictionary(kv => kv.Key, kv => kv.Value);
int a = postActivity["ActivityId63"].LikeActId;