0

moneyinfo 表有许多具有相同 ID 的行,我想取最后一行,我将使用下面的代码并执行此操作

var viewall3 = (from viewall4 in vfdet.MoneyInfos where viewall4.CustAccNo == id orderby viewall4.Moneyid descending select viewall4).FirstOrDefault(); 

但现在我想绑定 datalist 中的最后一行,我必须使用 .ToList() 来绑定

var viewall3 = (from viewall4 in vfdet.MoneyInfos where viewall4.CustAccNo == id orderby viewall4.Moneyid descending select viewall4).ToList();

accdetai.DataSource = viewall3;

  accdetai.DataBind();

但如果我使用.ToList() 所有行都显示我只想要最后一行请帮忙

4

2 回答 2

2

尝试:

var viewall3 = (from viewall4 in vfdet.MoneyInfos
                where viewall4.CustAccNo == id
                orderby viewall4.Moneyid descending
                select viewall4)
                .Take(1).ToList();

Take从序列的开头返回指定数量的连续元素。因此,您从可枚举的开始只取 1 项。

我个人觉得这段代码更具可读性,如下所示:

var viewall3 = vfdet.MoneyInfos.Where(i => i.CustAccNo == id)
                               .OrderByDescending(i => i.Moneyid)
                               .Take(1)
                               .ToList();
于 2013-06-05T12:10:02.983 回答
0

试试这个:

 var dt2 = moneyinfo.AsEnumerable().Reverse().Take(1);

它将为您提供数据表中的最后一条记录

于 2013-06-05T12:15:19.897 回答