在字典中转换'var'类型

时间:2013-05-23 09:31:27

标签: c# asp.net var

我在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作为全局变量。

1 个答案:

答案 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;