У меня есть следующие классы в проекте приложения магазина Windows.Улучшение вложенности производительности foreach C#
public class Meeting
{
public string Id { get; set; }
public string Organizer { get; set; }
public string Organization { get; set; }
public string Name { get; set; }
public string MeetingType { get; set; }
public string Description { get; set; }
public Address Address { get; set; } //X = LAT; Y=LNG
public DateTime StartDate { get; set; }
public DateTime EndTime { get; set; }
public string Status { get; set; }
public List<MeetingPoint> MeetingPoints { get; set; }
public List<MeetingInvitee> Invitees { get; set; }
}
и это один
public class MeetingPoint
{
public string id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public int Position { get; set; }
public List<Attchments> Attachments { get; set; }
public List<MeetingPoint> SubPoints { get; set; }
public int AttachmentNumber { get; set; }
public string details { get; set; }
public string executiveSummary { get; set; }
public string presenter { get; set; }
public string coPresenter { get; set; }
public Double duration { get; set; }
public string purpose { get; set; }
public string supportedBy { get; set; }
public int num { get; set; }
}
В одной из страниц, я делаю поиск, который выглядит следующим образом, где я пытаюсь получить Attachments
в каждом SubPoint
каждого MeetingPoint
foreach (var item in meeting.MeetingPoints)
{
foreach (var sub in item.SubPoints)
{
foreach (var at in sub.Attachments)
{
...
}
}
Мой вопрос в том, есть ли более эффективный способ сделать это, поскольку наличие 3 вложенных foreach занимает около 4 или 5 секунд.
Сколько у вас элементов? И что вы делаете внутри петель? – MarcinJuraszek
Если вам нужно пройти через все «вложения» для всех «подпунктов» всех «собраний», вам, скорее всего, придется перебирать все «вложения» для всех «подпунктов» всех «собраний». Это может быть сделано более эффективно, если вам не нужно перебирать все ... –
количество элементов зависит от того, что я делаю внутри циклов, считывает информацию вложения в новый объект и добавляет этот объект в список. – Ric