C# LINQ 示例

///分组
var ArticleGroupData = from row in dataTable.AsEnumerable()
group row by row.Field("groupid") into Item
select new
{
groupid= Item.Key,
Rows = Item
};
//分组-筛查-排序
var GroupData = dataTable.AsEnumerable()
.Where(row => row.Field("groupid") == "groupid") // 筛选指定 KeyValue
.GroupBy(row => row.Field("groupname")) // 筛选出的数据按 groupname 字段分组
.Select(group => new
{
groupid= group.Key,
TotalValue = group.Count() //条数汇总
})
.OrderByDescending(x => x.TotalValue ) // 按汇总数量降序排序
.Take(3).ToList();// 取出数量排前三的分组

//分组-筛查-多条件排序
var filterArticle = dtArticle.Select($"这里写筛查条件")
.Select(Item => new
{
KeyValue= Item.Field("keyvalue"),
FirstValue = !string.IsNullOrEmpty(Item.Field("groupid")) && Item.Field("groupid") == groupid ?Convert.ToDouble(wzyd) : Convert.ToDouble(0),
SencondValue = string.IsNullOrEmpty(Item.Field("groupid")) && Item.Field("tags") == lmid ? Convert.ToDouble(wzyd) : Convert.ToDouble(0),
Row = Item
})
.OrderByDescending(x => x.FirstValue) // 首先根据条件1降序排序
.ThenByDescending(x => x.SencondValue) // 然后根据条件2降序排序
.Take(10).ToList();// 取出数量排前10的数据

posted @   一步一个坑  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示