我有以下列表
static List<MessageDetail> CurrentMessage = new List<MessageDetail>();
动态地,分配给该列表的值例如:
CurrentMessage.Add(new MessageDetail { UserName = 123,GroupName = somegrp, Message = somemsg });
在这里,我要记录最近5条记录。
// this returns first 5 result, dont want to user orderby clause either
CurrentMessagesForGroup = CurrentMessage
.Where(c => c.GroupName == groupName)
.Take(5).ToList();
有没有办法实现
TakeLast()
属性?或任何形式的帮助将不胜感激。谢谢你的时间。 最佳答案
使用skip
:
CurrentMessagesForGroup = CurrentMessage
.Where(c => c.GroupName == groupName).Skip(Math.Max(0, CurrentMessage.Count() - 5)).ToList();
编辑:我也发现我认为它更易于使用(MoreLinq):
using MoreLinq;
var CurrentMessagesForGroup2 = CurrentMessage.TakeLast(5);
关于c# - 如何从列表中获取最新记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38587958/