改进c# linq表达式的算法和语法
本文关键字:算法 语法 表达式 linq 改进 | 更新日期: 2023-09-27 18:09:47
我已经在c# .net 3.5中做了一些linq,感觉我应该能够做得更整洁一些。
是否有办法将这些合并到一个linq语句中?
条件如下
- 如果列表中包含count大于等于的元素然后我们可以使用list
- 按计数排序
- 按日期排序
我还想在计数上添加另一个条件,我可以将计数大于或等于阈值的所有项目都视为相同。我可以通过限制计数阈值来做到这一点,但我不希望阈值被改变。我有点难倒如何做到这一点,而不是暂时编辑记录,当我从数据库中得到它们,而不是保存它们。也就是说,当阈值为3时,列表(1,2,3,4,5)在按日期排序之前变成(3,3(4),3(5),2,1)。
var allFaves = m_favouriteRepo.Get(user);
if(allFaves.Any(t => t.Count >= threshold))
{
var ordered = allFaves
.OrderByDescending(x => x.Count)
.ThenByDescending(x => x.SortDate)
.ToList();
}
谢谢尼尔。
if(allFaves.Any(t => t.Count >= threshold))
{
var ordered = allFaves
.OrderByDescending(x => x.Count>=threshold?threshold:x.Count)
.ThenByDescending(x => x.DatesHistory)
.ToList();
}