c#DotNet.Highcharts开关语句
C#新手,与EF搏斗,试图在foreach循环中执行切换/案例。我想将数据从一个数字的查询更改为一个字符串 查询中的数据(键)为1 2 3。有没有办法做到这一点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
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!感谢您的帮助!