【发布时间】:2016-04-04 11:12:43
【问题描述】:
我有一个List<Department>,因为它有部门名称、员工姓名列表和OrderBy Direction列表。现在我需要构造一个Dictionary<string, ObservableCollection<Employee>>,KEY 是部门名称,Value 是使用List<Department> 的 ObservableCollection。
期望:我需要根据
sortEmpName中的@987654332 中的Dictionary<string, ObservableCollection<Employee>> EmpList属性对ObservableCollection<Employee>中的EmpName进行排序 @ 使用 LINQ
我在下面的 Main() 函数中为此编写了 LINQ。
void Main()
{
List<Department> DepList = new List<Department>()
{
new Department() {
DepName = "HR",
sortEmpName = FilterListSortDirection.SortDirection.Ascending,
EmpName = new List<string>() {"Raj", "Baba"}
},
new Department() {
DepName = "iLab",
sortEmpName = FilterListSortDirection.SortDirection.Descending,
EmpName = new List<string>() {"Emma", "Kaliya"}
},
new Department() {
DepName = "Testing",
sortEmpName = FilterListSortDirection.SortDirection.None,
EmpName = new List<string>() {"Supriya", "Billa"}
}
};
Dictionary<string, ObservableCollection<Employee>> EmpList = DepList.Select(m =>
new {
Dep = m.DepName,
EmpCollection = new ObservableCollection<Employee>(
m.EmpName.Select(k =>
new Employee() { EmpName = k, IsChecked = true }).ToList())
}
).ToDictionary(x => x.Dep, x => x.EmpCollection);
}
模型类是
public class Employee
{
public string EmpName { get; set; }
public bool IsChecked { get; set; }
}
public class Department
{
public string DepName { get; set; }
public FilterListSortDirection.SortDirection sortEmpName { get; set; }
public List<string> EmpName { get; set; }
}
public class FilterListSortDirection
{
public enum SortDirection
{
None,
Ascending,
Descending
}
}
List<Department> DepList的输出截图
Dictionary<string, ObservableCollection<Employee>> EmpList的输出截图
期望:我需要根据
sortEmpName中的sortEmpName属性对ObservableCollection<Employee>中的ObservableCollection<Employee>中的EmpName进行排序 @ 使用 LINQ
这是我项目中复杂 LINQ 查询的一小部分,因此,我需要在 LINQ 中实现这一点。请帮助我。
- HR => 员工姓名列表应为升序
-
iLab => 员工姓名列表应按
降序 - 测试 => 员工姓名列表应按原始顺序 - 无(即,无更改 - 不排序)
【问题讨论】:
标签: c# linq sorting dictionary