读书人

跪求linq话语大神在哪里

发布时间: 2013-11-02 19:41:10 作者: rapoo

跪求linq语句,大神在哪里?
已知一个树形泛型集合和一个实体类

public class  Group
{
/// <summary>
/// 编号
/// </summary>
public string ID {get;set;}
/// <summary>
/// 父级编号
/// </summary>
public string ParentID{get;set;}
/// <summary>
/// 等级
/// </summary>
public int Levels{get;set;}
/// <summary>
/// 次数
/// </summary>
public int Num{get;set;}
/// <summary>
/// 排名
/// </summary>
public int No{get;set;}
}

List<Group> list = new List<Group>();
list.Add(new Group { Id = "01", ParentID = "-1", Levels = "-1",Num=21 });
list.Add(new Group { Id = "02", ParentID = "01", Levels = "1",Num=5 });
list.Add(new Group { Id = "04", ParentID = "02", Levels = "2",Num=1 });
list.Add(new Group { Id = "05", ParentID = "02", Levels = "2",Num=4 });
list.Add(new Group { Id = "03", ParentID = "01", Levels = "1",Num=16 });
list.Add(new Group { Id = "06", ParentID = "03", Levels = "2",Num=10 });
list.Add(new Group { Id = "07", ParentID = "03", Levels = "2",Num=3 });
list.Add(new Group { Id = "08", ParentID = "03", Levels = "2",Num=3 });



问题:根据等级和次数排名,同等级同次数排名相同
{linq 语句}

结果:保持树形结果不变
No ID ParentID Levels Num
1 01 -1 -1 21
1 03 01 1 16
1 06 03 2 10
3 07 03 2 3
3 08 03 2 3
2 02 01 1 5
2 05 02 2 4
4 04 02 2 1


[解决办法]
你这结果哪里是按等级先排序啊,分吗是乱的
Levels 应该是整形
List<Group> arr = list.OrderBy(x => x.Levels).ThenBy(y => y.Num).ToList();
[解决办法]
排序如1楼
我设计的话ParentID后就不会有Levels
[解决办法]
那你直接用TreeView或者TreeListView。查出某个节点下的数据,排序后再按顺序加载上去,用不着一次全部排序。
[解决办法]
这样的设计太蛋疼,这样的排序更蛋疼

或许这个可以帮到你: http://blog.csdn.net/q107770540/article/details/7708418

读书人网 >.NET

热点推荐