1

IEnumerable を埋めて、配列の長さごとに実行するループを作成します。値は、関数で 2 回発生する結果リストに追加されます。つまり、シーズンとカテゴリの場合です。各配列の長さは 2 つの値です。Cshtml に費やすと、2 つの値のうちの 1 つが高くなると、すべてが 2 回取得されます

        // Set List
        List<Template> result = new List<Template>();
        List<TemplateList> tmp_list = new List<TemplateList>();

        // Categories
        string[] Categories_Array = TemplateModel.GetRoomCategories.Split(',');
        // SeasonData
        string[] SeasonData_Array = TemplateModel.GetSeasonsData.Split(',');

        for (int i = 0; i < Categories_Array.Length; i++)
        {
            string[] Categories = Categories_Array[i].Split(';');                
            tmp_list.Add(new TemplateList { CategoreList = Categories[0], PriceList = "125,00" });

            for (int a = 0; a < SeasonData_Array.Length; a++)
            {
                string[] SeasonData = SeasonData_Array[a].Split(';');
                result.Add(new Template { GetSeasonsData = SeasonData[0] });
            }
        }

        result.Add(new Template { TemplateLists = tmp_list });

        return result.AsEnumerable();

cshtml

<table class="table" cellpadding="0" cellspacing="0" border="0">
<tr>
    <th class="header">Season</th>
    @foreach (var item in Model)
    { 
        <th class="header">@item.GetSeasonsData</th>
    }
</tr>
<tr>
    <td>
        <table cellpadding="0" cellspacing="0" border="0">
            @foreach (var item in Model)
            { 
                foreach (var extra in item.TemplateLists)
                {
                    <tr class="double">
                        <td class="roomlist">@extra.CategoreList</td>
                        <td class="pricelist">@extra.PriceList</td>
                    </tr>
                }
            }
        </table>
    </td>
</tr>

The Arrays: カテゴリEZ;1,DZ;2 シーズンSummer;01.12.2013;31.12.2013,Winter;01.06.2013;31.06.2013

カテゴリが 3 つある場合のみ シーズンは 1 つだけです まだ使用可能です 3 つの "tr" シーズンによってロードされない

ありがとうございました

4

1 に答える 1

1

1 つはパスワードのみのセットで、もう 1 つはユーザー名のみのセットです。また、2番目のループでループしていませんUser_ArrayList<Template>ユーザー名とパスワードで作成したい場合は、これを試してください:

List<Template> result = new List<Template>();

// Password
string[] Password_Array = TemplateModel.Password.Split(',');
// User
string[] User_Array = TemplateModel.User.Split(',');

for (int i = 0; i < User_Array.Length; i++)
{
    string[] users = User_Array[i].Split(';');

    // stop it blowing up if there are fewer passwords than usernames 
    // given that we are indexing against the username array
    string password = string.Empty;
    if (Password_Array.Length > i) {
        string[] passwords = Password_Array[i].Split(';');
        password = passwords[0];
    }

    result.Add(new Template { User = users[0], Password = password });
}

補足: Dictionary<string, string>2 つの配列の代わりに、キーとしてユーザー名を持つ a を使用することを検討することをお勧めします。

于 2013-09-19T10:35:37.117 に答える