我输入可能看起来像这样的:如何组只能用相同属性后续项目使用LINQ
A 1 2 C,D
A 2 3 C,E
B 4 5 F
A 6 7
A 7 8 D
A 9 10 E
我这些信息存储在我的模型类:
public class Item {
public String Name {get;set;}
public int Start {get;set;}
public int End {get;set;}
public List<string> Orders {get;set;}
}
我试图用Linq合并所有后续项目,如果项目具有相同的名称并生成具有组中第一个项目的起始值的新项目,组中最后一个项目的结束值和所有定单列表的联合。然后,它应该是这样的:
A 1 3 C,D,E
B 4 5 F
A 6 10 D, E
我尝试以下LINQ的声明,然而,组中的所有作为和烧烤在一起,独立的是否存在之间的任何其他项目。我需要改变什么?订单列表的联合也缺失。
var groups = items.GroupBy(i => i.Name).ToList();
foreach (var group in groups)
{
result.Add(new Item {
Start = group.First().Start,
End = group.Last().End,
Name = group.First().Name });
}
你的结果变量会成为他的组变量的权利? –
不应该是我== items.Count - 1? – RoflcoptrException
@RoflcoptrException否,“-2”部分是由于我跳过了“items”列表中的第一项。此外,在我进行比较时,'i'具有previos迭代的值,因此在第一次迭代中'i'等于零,使得items.Count_2也为零,对于只有两个项目的集合。 – HimBromBeere