c#DotNet.Highcharts开关语句

c#DotNet.Highcharts开关语句,c#,.net,highcharts,C#,.net,Highcharts,C#新手,与EF搏斗,试图在foreach循环中执行切换/案例。我想将数据从一个数字的查询更改为一个字符串 查询中的数据(键)为1 2 3。有没有办法做到这一点 if (selectQuestion.SelectedValue == "1") { var data = db.tbl_complaints_data .Where(d => d.organisation_id

C#新手,与EF搏斗,试图在foreach循环中执行切换/案例。我想将数据从一个数字的查询更改为一个字符串

查询中的数据(键)为1 2 3。有没有办法做到这一点

if (selectQuestion.SelectedValue == "1")
                {
                    var data = db.tbl_complaints_data
                        .Where(d => d.organisation_id == o.organisation_id
                        && d.Service == site
                        && d.Date.Month == month
                        && d.Q1 != null)
                        .GroupBy(d => d.Q1)
                        .Select(d => new { q1 = d.Key, total = d.Count() });

                    var segment = new List<object[]>();

                    foreach (var d in data)
                    {
                        segment.Add(new Object[] 
                        { 
                            switch (d.q1.ToString())
                            {
                                case "1":
                                    d.q1.ToString() = "Your care";
                                    break;
                                case "2":
                                    d.q1.ToString() = "Another's care [friend or relative]";
                                    break;
                                case "3":
                                    d.q1.ToString() = "Other type of complaint";
                                    break;
                            }, 
                            d.total
                        });
                    }

                    Render_PieChart(segment);    
if(selectQuestion.SelectedValue==“1”)
{
var数据=db.tbl\u数据
其中(d=>d.organization\u id==o.organization\u id
&&d.服务==站点
&&d.Date.Month==月份
&&d.Q1!=null)
.GroupBy(d=>d.Q1)
.Select(d=>new{q1=d.Key,total=d.Count()});
var段=新列表();
foreach(数据中的var d)
{
段.添加(新对象[]
{ 
开关(d.q1.ToString())
{
案例“1”:
d、 q1.ToString()=“您的关怀”;
打破
案例“2”:
d、 q1.ToString()=“他人的关心[朋友或亲戚]”;
打破
案例“3”:
d、 q1.ToString()=“其他类型的投诉”;
打破
}, 
d、 总数
});
}
渲染图形(段);
如果有兴趣,这是饼图

protected void Render_PieChart(List<object[]> pData)
    {
        DotNet.Highcharts.Highcharts chart = new DotNet.Highcharts.Highcharts("chart")
            .InitChart(new Chart
            {
                DefaultSeriesType = ChartTypes.Pie
            })
            .SetTitle(new Title
            {
                Text = selectQuestion.SelectedItem.Text
            })
            .SetSubtitle(new Subtitle
            {
                Text = selectMonth.SelectedItem.Text
            })
            .SetSeries(new[]
                {
                    new Series 
                    {
                        Data = new DotNet.Highcharts.Helpers.Data(pData.ToArray())
                    }
                })
            .SetCredits(new Credits
            {
                Enabled = false
            });

        ltrChart.Text = chart.ToHtmlString();
    }`
protectedvoid渲染图(列出pData)
{
DotNet.Highcharts.Highcharts chart=新的DotNet.Highcharts.Highcharts(“图表”)
.InitChart(新图表
{
DefaultSeriesType=ChartTypes.Pie
})
.SetTitle(新标题)
{
Text=selectQuestion.SelectedItem.Text
})
.SetSubtitle(新副标题)
{
Text=selectMonth.SelectedItem.Text
})
.SetSeries(新[]
{
新系列
{
Data=new DotNet.Highcharts.Helpers.Data(pData.ToArray())
}
})
.设置学分(新学分)
{
已启用=错误
});
ltrChart.Text=chart.ToHtmlString();
}`

任何帮助或建议都将不胜感激。

编译器告诉您代码错误:

  • 无法在
    新对象[]
    init-->
    无效的表达式术语“switch”内切换
  • 不能将变量分配给
    ToString()
    -->
    分配的左侧必须是变量、属性或索引器
  • 将其改写为:

    var segment = new List<object[]>();
    foreach (var d in data)
    {
        string q1String = "Unknown";
        switch (d.q1)
        {
            case 1:
                q1String = "Your care";
                break;
            case 2:
                q1String = "Another's care [friend or relative]";
                break;
            case 3:
                q1String = "Other type of complaint";
                break;
            default:
                break;
        }
    
        segment.Add(new Object[] 
        { 
            q1String, 
            d.total
        });
    }
    
    var段=新列表();
    foreach(数据中的var d)
    {
    string q1String=“未知”;
    开关(d.q1)
    {
    案例1:
    q1String=“您的关怀”;
    打破
    案例2:
    q1String=“他人的关心[朋友或亲戚]”;
    打破
    案例3:
    q1String=“其他类型的投诉”;
    打破
    违约:
    打破
    }
    段.添加(新对象[]
    { 
    Q1字符串,
    d、 总数
    });
    }
    
    不再显示错误消息,代码将执行!但出现了新问题,我还看不出原因。饼图本身不再显示。如果我设置q1String=“test”在segment.add中,它起作用了。我仔细检查了代码,它确实按照预期执行了switch语句。有什么想法吗?@Daniel,JavaScript控制台上有错误吗?我不熟悉
    DotNet.Highcharts
    ,但我想在某个时候它会生成JavaScript。
    new DotNet.Highcharts.Helpers.Data(pData.ToArray())
    resolve to in the JavaScript?我甚至没有想过要尝试,问题是“in other's.Escape字符是必需的,但是它需要\\而不是\。必须是DotNet.Highcharts!感谢您的帮助!