我有一个嵌套列表
List<Employee> emplist = new List<Employee>()
{
new Employee{Age=15, name = "Tom", Projects = new List<project>
{
new project { ID = 12, code = 22 ,name = "Project A"},
new project { ID = 11, code = 23 ,name = "Project B"},
new project { ID = 16, code = 25 ,name = "Project C"}
}},
new Employee{Age=17, name = "Billy", Projects = new List<project>
{
new project { ID = 17, code = 20 ,name = "Project D"},
new project { ID = 18, code = 12 ,name = "Project E"},
new project { ID = 10, code = 9 ,name = "Project F"}
}},
new Employee{Age=25, name = "Sam", Projects = new List<project>
{
new project { ID = 22, code = 2 ,name = "Project X"},
new project { ID = 24, code = 5 ,name = "Project Y"},
new project { ID = 19, code = 1 ,name = "Project Z"}
}}
};
这是一个 LINQ,用于搜索 ID(=24)的最大值并获取索引(=2)和子索引(=1)
var result = emplist.Select((x,i) => new { index = i, item = x})
.SelectMany(x => x.item.project.Select(
(a,i) => new { index = x.index, subindex = i, id = a.ID}))
.OrderByDescending(x => x.id )
.First();
我需要为不同的变量多次执行这个特定的 LINQ(比如这次我想找到最大代码而不是 ID)。是否有可能拥有这样的功能,以便我可以快速更改 LINQ?下面的函数是废话,我只是想说明这个想法
public void QuickLINQ(string Parameter1, string Parameter2)
{
var result = emplist.Select((x,i) => new { index = i, item = x})
.SelectMany(x => x.item.Parameter1.Select(
(a,i) => new { index = x.index, subindex = i, id = a.Parameter2}))
.OrderByDescending(x => x.id )
.First();
}