У меня есть словарь класса 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 является ключевым в словаре. Заранее спасибо.
Следующий оператор 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
список инструкций.
using System.Linq;
в верхней части .cs
файла, который вы пытаетесь foreach
над этим объектом , поэтому он должен быть IEnumerable
, который позволяет использовать LINQ