4→→→1
5→→→2
6→→→3
7→→→4
7→→→4
7→→→4
10→→→5
14→→→6
18→→→7
21→→→8
22→→→9
22→→→9
30→→→10
左侧是排序好的原始数据,要将其转换成从1开始的排序,
如果有重复还是重复,左侧排序中没有规则,可能是断断续续的,但结果要规则的。
5→→→2
6→→→3
7→→→4
7→→→4
7→→→4
10→→→5
14→→→6
18→→→7
21→→→8
22→→→9
22→→→9
30→→→10
左侧是排序好的原始数据,要将其转换成从1开始的排序,
如果有重复还是重复,左侧排序中没有规则,可能是断断续续的,但结果要规则的。
void Main()
{
var list=new List<int>{4,5,6,7,7,7,10,14,18};
var result=from m in list
join n in list.GroupBy(x=>x).Select((x,y)=>new{x.Key,i=y+1})
on m equals n.Key
select new {m,n.i};
result.ToList().ForEach(r=>Console.WriteLine("{0}\t{1}",r.m,r.i));
/*
4 1
5 2
6 3
7 4
7 4
7 4
10 5
14 6
18 7
*/
}
.Select((x,y)=>x.Select(n=>new{x.Key,i=y+1}))
.SelectMany(x=>x);