我使用2sxc(DNN模块)视图为问卷创建一些统计数据(主要是y / n问题的调查类型)。
我通过以下方式获取数据:
var items = AsDynamic(App.Data["entity_name"]);
我可以轻松地使用linq获取计数,但我想问一下是否有更好的方法来循环所有可能的问题(它是" upa1"的固定列表, " upa2"," upb1"," upb2"等等)而不是全部写出来。或者,如果全球有更好的方法来计算这些数量。
<table border="1">
<tr>
<td>QuestionID</td>
<td>Question description</td>
<td>Yes</td>
<td>No</td>
<td>N/a</td>
<td>Indicator %</td>
<tr>
<tr>
<td>upa1</td>
<td>This is upa1</td>
<td>@items.Count(i => i.upa1 == "y")</td>
<td>@items.Count(i => i.upa1 == "n")</td>
<td>@items.Count(i => i.upa1=="na")</td>
<td>@(((decimal)items.Count(i => i.upa1 == "y") * 100 / items.Count(i => i.upa1 == "s" || i.upa1 == "n")
).ToString( "0.0" ))%</td>
<tr>
<tr>
<td>upa2</td>
<td>This is upa2</td>
<td>@items.Count(i => i.upa2 == "y")</td>
<td>@items.Count(i => i.upa2 == "n")</td>
<td>@items.Count(i => i.upa2=="na")</td>
<td>@(((decimal)items.Count(i => i.upa2 == "y") * 100 / items.Count(i => i.upa2 == "s" || i.upa2 == "n")
).ToString( "0.0" ))%</td>
<tr>
<tr>
<td>upb1</td>
<td>This is upb1</td>
<td>@items.Count(i => i.upb1 == "y")</td>
<td>@items.Count(i => i.upb1 == "n")</td>
<td>@items.Count(i => i.upb1=="na")</td>
<td>@(((decimal)items.Count(i => i.upb1 == "y") * 100 / items.Count(i => i.upb1 == "s" || i.upb1 == "n")
).ToString( "0.0" ))%</td>
<tr>
(...)
</table>