You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从PriceList中筛选指定NAME的所有价格并按TIMESTAMP排序?

解决方法:筛选指定NAME的价格并按时间排序

嘿,我懂你的需求——你现在不需要对所有NAME进行分组,而是要精准获取某个指定NAME的全部价格记录,再按TIMESTAMP排序对吧?

原来代码的问题

你当前的代码用了group by p.NAME,这会把整个PriceList里的所有不同NAME都分成独立的组,然后每个组内按时间排序,所以返回的是所有分组的集合。而你要的是单个(或指定几个)NAME的结果,完全不需要分组操作,直接过滤+排序就够了。

针对单个指定NAME的实现

假设你有一个变量存储目标NAME,比如targetName,直接用Where筛选后再排序:

// 替换成你实际要筛选的NAME值
string targetName = "ProductA";

// 获取指定NAME的所有价格,按TIMESTAMP升序排序
var targetPricesSorted = PriceList
    .Where(p => p.NAME == targetName)
    .OrderBy(a => a.TIMESTAMP);

如果需要降序排序,把OrderBy换成OrderByDescending即可:

var targetPricesSorted = PriceList
    .Where(p => p.NAME == targetName)
    .OrderByDescending(a => a.TIMESTAMP);

扩展:筛选多个指定NAME

如果需要同时获取多个NAME的价格数据,用Contains来匹配:

// 定义要筛选的多个NAME列表
List<string> targetNames = new List<string> { "ProductA", "ProductB", "ProductC" };

var targetPricesSorted = PriceList
    .Where(p => targetNames.Contains(p.NAME))
    .OrderBy(a => a.TIMESTAMP);

这样返回的就是所有匹配指定NAME的价格记录,并且已经按时间戳排好序了,比原来的分组写法更直接高效。

内容的提问来源于stack exchange,提问作者user9198450

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:48:16