参考: class Test { public int Prop { get; set; } public string Name { get; set; } } List<Test> list = new List<Test> { new Test{ Prop=1,Name="1"}, new Test{ Prop=2,Name="2"}, new Test{ Prop=1,Name="3"}, new Test{ Prop=4,Name="4"}, new Test{ Prop=3,Name="5"}, new Test{ Prop=2,Name="6"}, new Test{ Prop=1,Name="7"}, new Test{ Prop=4,Name="8"} }; //上面是初始化测试数据,不用管,重点看下面 List<List<Test>> list2 = new List<List<Test>>(); while (list.Count > 0) { int prop = list[0].Prop; List<Test> listTemp = list.FindAll(delegate(Test t) { return t.Prop == prop; }); list2.Add(listTemp); list.RemoveAll(delegate(Test t) { return t.Prop == prop; }); } foreach (List<Test> l in list2) { foreach (Test t in l) { Console.Write("{0} ", t.Name); } Console.WriteLine(); }/* 输出: 1 3 7 2 6 4 8 5 */
List<entityModel> allList;
list.Add(allList.Where(m=>条件).ToList());
{
public int Prop { get; set; }
public string Name { get; set; }
} List<Test> list = new List<Test>
{
new Test{ Prop=1,Name="1"},
new Test{ Prop=2,Name="2"},
new Test{ Prop=1,Name="3"},
new Test{ Prop=4,Name="4"},
new Test{ Prop=3,Name="5"},
new Test{ Prop=2,Name="6"},
new Test{ Prop=1,Name="7"},
new Test{ Prop=4,Name="8"}
};
//上面是初始化测试数据,不用管,重点看下面
List<List<Test>> list2 = new List<List<Test>>();
while (list.Count > 0)
{
int prop = list[0].Prop;
List<Test> listTemp = list.FindAll(delegate(Test t) { return t.Prop == prop; });
list2.Add(listTemp);
list.RemoveAll(delegate(Test t) { return t.Prop == prop; });
}
foreach (List<Test> l in list2)
{
foreach (Test t in l)
{
Console.Write("{0} ", t.Name);
}
Console.WriteLine();
}/*
输出:
1 3 7
2 6
4 8
5
*/