public static void Main(string[] args) { var beatles = (new[] { new { id=1 , inst = "guitar" , name="john" }, new { id=2 , inst = "guitar" , name="george" }, new { id=3 , inst = "guitar" , name="paul" }, new { id=4 , inst = "drums" , name="ringo" }, new { id=5 , inst = "drums" , name="pete" } }); var o = beatles .OrderBy(x => x.id) // order by yyy .GroupBy(x => x.inst) // partition by xxx .Select(group => new { Group = group, Count = group.Count() }) .SelectMany(e=>e.Group.Select(v=>v) .Zip(Enumerable.Range(1,e.Count) /*ROW_NUMBER*/, (i,j)=> new { i.inst,i.name, rn = j }) ); foreach (var item in o) { Console.WriteLine("{0}|{1}|{2}",item.inst,item.name, item.rn); } Console.ReadKey(); }
时间: 2024-10-14 23:31:22