2

我在 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类型,但我希望整个值在构造函数中初始化,我想将 postactivity 作为全局变量。

4

1 回答 1

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;
于 2013-05-23T09:35:42.473 回答