【问题标题】:Anonymous Types - How to dynamically create?匿名类型 - 如何动态创建?
【发布时间】:2023-04-08 19:57:01
【问题描述】:

我继承了一些语法我不理解但需要更改的代码。以var data = new[] 开头的行似乎是匿名类型?

如何将其更改为动态而不是硬编码为 3 条记录?

public JsonResult GetPieChartData()
{
    var myList = db.Database.SqlQuery<Dashboard>("EXEC [DBO].[uspDivisionDashboard2] {0}, {1}",
        Environment.UserName, "GUID").ToArray();

    var data = new[] 
    {
        //these will get overwritten below
        new { Name = "Row 1", Value = 1 },
        new { Name = "Row 2", Value = 2 },
        new { Name = "Row 3", Value = 3 },
    };  

    int j = 0;
    foreach (var i in myList)
    {
        data[j] = new { Name = i.Stat, Value = i.Total };
        j++;
    }

    return Json(data);
}

我尝试将其转换为字典,但当它传递到我的谷歌图表时,我现在得到“没有数据”,所以这不起作用。

【问题讨论】:

    标签: asp.net-mvc-4 c#-4.0 anonymous-types


    【解决方案1】:

    您可以使用 lambda 表达式来完成此操作:

    var data2 = myList.Select(x => new { Name = x.Stat, Value = x.Total }).ToArray();
    
    return Json(data2);
    

    【讨论】:

    • 太棒了。非常感谢!一次更正 = "x.Total" 而不是 "i.Total"
    • 已更正,很高兴为您提供帮助 :)
    猜你喜欢
    • 2011-04-30
    • 1970-01-01
    • 2017-07-14
    • 2011-04-13
    • 1970-01-01
    • 1970-01-01
    • 2010-09-28
    • 1970-01-01
    相关资源
    最近更新 更多