linq排序,请帮忙
我在做一个东西,要用学号(字符串)排序,使用了oder by,但是结果仍然不对,顺序是乱的,将学号用convert.toint64改为整型后,发现还是不对 ,var m = (from p in dc.all
where p.ClassInfoName == _class1
orderby Convert .ToInt64 ( p.StudentNo.Trim ().Substring (p.StudentNo .Length -2))
select new { p.StudentName, p.StudentNo, p.ClassInfoName }).Distinct();
想知道是为什么,怎么才能排对顺序呢? --------------------编程问答-------------------- var m = (from p in dc.all
where p.ClassInfoName == _class1
orderby p.StudentNo
select new { p.StudentName, p.StudentNo, p.ClassInfoName }).Distinct();
我觉得学号是字符串的话,这样就行了。。。
你所谓的乱的是什么意思?
给几个数据看看 --------------------编程问答-------------------- 可以考虑多个属性来排列 --------------------编程问答-------------------- 是不是你的学号,长度不一致? --------------------编程问答-------------------- orderby decing.. --------------------编程问答-------------------- 不需要转换成数值型 就能排序吧 --------------------编程问答-------------------- 因为你使用了Distinct --------------------编程问答-------------------- Distinct是干嘛的啊?? --------------------编程问答-------------------- 用orderby,thenby这2个专门用于排序的语句把 --------------------编程问答-------------------- var m = (from p in dc.all
where p.ClassInfoName == _class1
select new { p.StudentName, p.StudentNo, p.ClassInfoName }).Distinct().OrderByDescending(s=>s.StudentNo)
在后面加上OrderByDescending(s=>s.StudentNo)
试试
--------------------编程问答-------------------- LINQ的排序跟T_SQL不太一样 应该是如下的 我有段时间对这个也很烦躁的
--------------------编程问答-------------------- 我是这么写的 查询的表不一样 自己注意以下
var assign = (from a1 in db.AssignInfo
where a1.StudentID==a.StudentID orderby a1.AssignID descending
a1).First();
return assign ; --------------------编程问答-------------------- --------------------编程问答-------------------- var m =
dc.all
.Where(p => p.ClassInfoName == _class1)
.OrderBy(p => p.StudentNo)
.Distinct()
.Select(p => new p{
p.StudentName,
p.StudentNo,
p.ClassInfoName
});
补充:.NET技术 , LINQ