Linq查询数据集取得排序后的序列号(行号)

今天群里有同学问如何用linq取结果集的行号,查了一下资料,发现linq有很简单的方法可以实现,花了几分钟写了一个测试用例,现记录下来,以备参考:

    /// <summary>
/// 测试类
/// </summary>
public class models
{
public int id { set; get; }
public string Name { set; get; }
public string Phone { set; get; }
public string Address { set; get; }
public DateTime Birthday { set; get; }
private static int idx { set; get; } = 0;
public models()
{
id = idx++;
Name = "testName" + id.ToString();
Phone = "testPhone" + id.ToString();
Address = "testAddress" + id.ToString();
Birthday = DateTime.Now.AddHours(id);
} }

下面是实现方法:

            var list = new List<models>();
list.Add(new models());
list.Add(new models());
list.Add(new models());
list.Add(new models());
list.Add(new models());
list.Add(new models());
var tt = list.OrderBy(p => p.Name).OrderByDescending(p =>p.Birthday).OrderByDescending(p => p.id).Select((p, idx) => new {
row = idx,
name = p.Name,
phone = p.Phone
});
上一篇:SimpleChannelInboundHandler和ChannelInboundHandlerAdapter区别


下一篇:hdu_4352_XHXJ's LIS(数位DP+状态压缩)