110,533
社区成员
发帖
与我相关
我的任务
分享
void Main()
{
List<People> peoples = new List<People>()
{
new People() {age = 12, name="AAA", sex = "男", sn=1},
new People() {age=22, name = "BBB", sex = "男", sn=2},
new People() {age=13, name = "CCC", sex = "男", sn=3},
new People() {age = 31, name = "DDD", sex = "女", sn=4},
new People() {age=24, name = "EEE", sex = "女", sn=5},
new People() {age=54, name = "FFF", sex = "男", sn=6}
};
var query = peoples.OrderByDescending(p=>p.age)
.Select((p,i)=> new People
{
age=p.age,
name=p.name,
sex=p.sex,
sn= i+1
});
peoples = (from p in peoples
join q in query
on new {name = p.name, sex = p.sex}
equals new { name = q.name, sex = q.sex}
select new People
{
age=p.age,
name=p.name,
sex=p.sex,
sn=q.sn
}).ToList();
}
public class People
{
public int age {get; set;}
public string name {get;set;}
public string sex {get;set;}
public int sn {get;set;}
}
list.select((item,index)=>
其中index就是索引.. 在返回的时候 加这个 就应该能满足你"序号"的操作
peoples = peoples.OrderBy(p => p.age).ToList();
var i = 0;
peoples.ForEach(p => p.sn = ++i);
var tmpList = peoples.OrderBy(x=>x.age).ToList();
for(var i=0;i< tmpList.Count;i++)
{
tmpList[i].sn = i+1;
}