Обобщение результатов в таблице в MVC - PullRequest
1 голос
/ 07 февраля 2012

У меня есть следующий BO:

public class CinemaSchedule 
{      

    private DateTime showDate;        
    public DateTime ShowDate
    {
        get { return showDate; }
        set { SetPropertyValue("ShowDate", ref showDate, value); }
    }

    private TimeSpan showTime;        
    public TimeSpan ShowTime
    {
        get { return showTime; }
        set { SetPropertyValue("ShowTime", ref showTime, value); }
    }

    private Cinema cinema; 
    public Cinema Cinema
    {
        get { return cinema; }
        set { SetPropertyValue("City", ref cinema, value); }
    }
}

 public class Cinema 
{

    private string code;       
    public string Code
    {
        get { return code; }
        set { SetPropertyValue("Code", ref code, value); }
    }

    private string name;        
    public string Name
    {
        get { return name; }
        set { SetPropertyValue("Name", ref name, value); }
    }
}

В контроллере я написал:

model.Schedules = FilmRepository.GetById(eventId).CinemaSchedules;

в виде:

<% foreach (var schedule in film.CinemaSchedules)
                { %>
                <tr>
                    <td><a href="#"><%=schedule.Cinema.Name%></a></td>
                    <td class="time_list">
                        <ul>
                            <li><a href="#"><%=TimeSpan.FromSeconds(schedule.ShowTime.Value) %></a></li>                            
                        </ul>
                    </td>
                </tr>
                <% } %>

Результат:

Cinema 1    19:00:00
Cinema 1    22:00:00
Cinema 2    19:00:00

Но я хочу, чтобы это было:

Cinema 1     19:00:00     22:00:00
Cinema 2     19:00:00

Спасибо.

1 Ответ

2 голосов
/ 07 февраля 2012

Вы хотите выполнить GroupBy в кино.

Убедитесь, что System.Linq указан как использование на ваш взгляд. И тогда вы можете сделать следующее:

<% foreach (var scheduleGroup in film.CinemaSchedules.GroupBy(s => s.Cinema.Name))
{ %>
<tr>
    <td><a href="#"><%=scheduleGroup.Key%></a></td>
    <td class="time_list">
        <ul>
    <% foreach (var schedule in scheduleGroup)
    { %>
            <li><a href="#"><%=TimeSpan.FromSeconds(schedule.ShowTime.Value) %></a></li>                            
    <% } %>
        </ul>
    </td>
</tr>
<% } %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...