使用动态变量创建循环

时间:2017-10-18 10:18:46

标签: c# linq razor

我使用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>

0 个答案:

没有答案