如何在动态数组中添加项目

时间:2015-08-22 23:35:01

标签: c# arrays oop dynamic anonymous-types

我需要创建一个返回dynamic []

的函数

这对我来说很好用

    public static dynamic[] GetDonutSeries(this Polls p)
    {
        return new dynamic[]
            {
                new {category = "Football",value = 35},
                new {category = "Basketball",value = 25},
                new {category = "Volleyball",value = 20},
                new {category = "Rugby",value = 10},
                new {category = "Tennis",value = 10}  
            };
    }

但我需要添加不同操作的项目。

喜欢这个

public static dynamic[] GetDonutSeries(this Polls p)
    {
        dynamic[] result = new dynamic[]();

        foreach (PollOptions po in p.PollOptions)
        {
            result.Add(new {category = po.OptionName,value = po.PollVotes.Count});
        }
        return result;
    }

但我不能使用动态[]的.Add方法。我怎么能这样做?

1 个答案:

答案 0 :(得分:4)

数组没有Add方法。看来您正在寻找List

public static List<dynamic> GetDonutSeries(this Polls p)
{
    List<dynamic> result = new List<dynamic>();

    foreach (PollOptions po in p.PollOptions)
    {
        result.Add(new { category = po.OptionName, value = po.PollVotes.Count });
    }
    return result;
}

如果您必须返回数组,则可以使用result.ToArray()