亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 C# 的 for 循環中從列表中獲取數據

在 C# 的 for 循環中從列表中獲取數據

喵喵時光機 2023-09-18 10:54:18
我正在嘗試循環瀏覽列表并為列表中的每個站點創建一個新表我的控制器看起來像這樣 List<string> OffReportColumns = new List<string>(7);      List<List<string>> OffReportRows = new List<List<string>>();               foreach (Site s in sites)            {                                           OffReportColumns.Add(s.Name);                OffReportColumns.Add("");                OffReportColumns.Add("");                OffReportColumns.Add("Average Cost");                OffReportColumns.Add("");                OffReportColumns.Add("");                OffReportColumns.Add("Average Cost With Labour");   OffReportRows.Add(new List<string>                {                    "Parts",                    "",                    "",                    osiPartCost[s.ID].ToString("C2"),                    "",                    "",                    osiPartCost[s.ID].ToString("C2")                });            }我的視圖看起來像這樣@foreach (Site s in sites)        {            <tr style="color:black">                @foreach (var col in ViewBag.OffReportColumns)                {                    <th>@col </th>                }                        </tr>            <tr style="color:black">                   @foreach (var cell in ViewBag.OffReportRows)                   {                       <td>@cell</td>                   }            </tr>        }目前,這使得頁面看起來像但我希望它的布局看起來像這樣"Eric Car Stock "             "Average Cost"     "Average Cost with Labour""In-House Use "               "Average Cost"     "Average Cost with Labour""Havey Kuhar's Car Stock "    "Average Cost"     "Average Cost with Labour"每個表下面都有與其站點相對應的數據我如何更改我的代碼來實現此目的?
查看完整描述

3 回答

?
森欄

TA貢獻1810條經驗 獲得超5個贊

在第一個代碼片段中,所有站點的所有列都添加到一個列表中。二維正在變成一維。如果沒有循環,它實際上可以寫成


OffReportColumns.Add("Eric Car Stock ");

OffReportColumns.Add("");

OffReportColumns.Add("");

OffReportColumns.Add("Average Cost");

OffReportColumns.Add("");

OffReportColumns.Add("");

OffReportColumns.Add("Average Cost With Labour");


OffReportColumns.Add("In-House Use ");

OffReportColumns.Add("");

OffReportColumns.Add("");

OffReportColumns.Add("Average Cost");

OffReportColumns.Add("");

OffReportColumns.Add("");

OffReportColumns.Add("Average Cost With Labour");


OffReportColumns.Add("Havey Kuhar's Car Stock ");

OffReportColumns.Add("");

OffReportColumns.Add("");

OffReportColumns.Add("Average Cost");

OffReportColumns.Add("");

OffReportColumns.Add("");

OffReportColumns.Add("Average Cost With Labour");

第二個代碼片段表示:“對于每個站點(其中有 3 個),創建一個表行。在每行中,對于每個 OffReportColumns(其中有 21 個),創建一個表列,其中包含來自內部循環的文本。


這就是為什么來自所有站點的所有列都出現在 3 行的每一行上的原因。


OffReportColumns更好的方法是根本沒有該列表。相反,視圖可以這樣寫


@foreach (Site s in sites)

{

    <tr>

        <td>@s.Name</td>

        <td></td>

        <td></td>

        <td>Average Cost</td>

        <td></td>

        <td></td>

        <td>Average Cost With Labour</td>

    </tr>

}

這將為每個站點創建一行 7 列。每行的第一列將是站點的名稱。


查看完整回答
反對 回復 2023-09-18
?
當年話下

TA貢獻1890條經驗 獲得超9個贊

正如您在評論中所述,有兩列是靜態數據,唯一的動態數據是網站可以簡單地循環拋出網站并顯示它們,如下所示


    @foreach (Site s in sites)

    {

        <tr style="color:black">

        <td>@Site</td>

        <td>Average Cost</td>

        <td>Average Cost with Labour</td>

        </tr>

    }

您還可以刪除添加列到控制器中的列表和視圖包,因為它們不是必需的。


查看完整回答
反對 回復 2023-09-18
?
米琪卡哇伊

TA貢獻1998條經驗 獲得超6個贊

我給你一個簡單的例子,這樣你就可以實現它,在全窗口中打開它以正確查看它

正如您在評論中所述,有兩列是靜態數據,唯一的動態數據是網站可以簡單地循環拋出網站并顯示它們,如下所示


? ? @foreach (Site s in sites)

? ? {

? ? ? ? <tr style="color:black">

? ? ? ? <td>@Site</td>

? ? ? ? <td>Average Cost</td>

? ? ? ? <td>Average Cost with Labour</td>

? ? ? ? </tr>

? ? }

您還可以刪除添加列到控制器中的列表和視圖包,因為它們不是必需的。


查看完整回答
反對 回復 2023-09-18
  • 3 回答
  • 0 關注
  • 126 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號