Словарь groupby visitdate и свойство IsChecked C #

1

У меня есть словарь класса SelectNode в классе SelectList:

public Dictionary<long, SelectNode> Tbl;

SelectNode имеет следующие свойства:

        public long SectionId;
        public int State;
        public string Project;
        public string Name;
        public string VisitDate;
        public long Run;
        public SectionMsg Msg;
        public bool Checked;

в классе SelectList, я хочу создать словарь, сгруппированный с помощью VisitDate, который имеет только проверенное свойство = true

это метод, который у меня есть:

    /// <summary>
    /// Method filters checkeditems from SelectNode class via SelectList class
    /// </summary>
    public void GetSelected()
    {
        foreach (SelectNode sn in this.Buf.Lst.Selected)
        {
           //Dont know what to put here to generate new dicationary
        }
    }

long SecdtionId является ключевым в словаре. Заранее спасибо.

  • 0
    эти поля находятся в частном классе в публичном классе
  • 0
    в общедоступном классе SelectNode есть закрытый класс DataRec
Теги:
dictionary
group-by

1 ответ

0
Лучший ответ

Следующий оператор LINQ должен сделать это, считая, что string в VisitDate является VisitDate.

var ordered = this.Buf.Lst.Selected.Where(o=> o.Value.Checked).GroupBy(o => DateTime.Parse(o.Value.VisitDate));

или если вы хотите заказать их как strings то просто

  var ordered = Tbl.Where(o=> o.Value.Checked).GroupBy(o => o.Value.VisitDate);

Вам нужно добавить using System.Linq; к вашему using список инструкций.

  • 0
    this.Buf.Lst.Selected = объект, который возвращает экземпляр SelectList и не имеет метода orderby
  • 0
    Вы должны добавить, using System.Linq; в верхней части .cs файла, который вы пытаетесь foreach над этим объектом , поэтому он должен быть IEnumerable , который позволяет использовать LINQ
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню