c# - Linq分组并选择子组中最常出现的项目
问题描述
我一直在努力在 C# 中为下面的这种情况编写一个 linq 查询,我有一个包含结构的列表
PostCode, Premise, Connectivity, Availability
XYZ 123, 1, HIGH, TRUE
XYZ 123, 2, LOW, TRUE
XYZ 123, 3, LOW, FALSE
ABC 234, 1, HIGH, FALSE
ABC 123, 2, HIGH, FALSE
我正在尝试使用 ROW_NUMBER 和分区生成我在 SQL 中完成的以下内容,但这对我来说在 c# 中实现是一个挑战。非常感谢任何帮助。
PostCode, Connectivity, Availability
XYZ 123, LOW, TRUE
ABC 234, HIGH, FALSE
解决方案
这就是你要找的东西:
class Program
{
static void Main(string[] args)
{
List<PostCode> postCodes = new List<PostCode>() {
new PostCode() {postcode = "XYZ 123", premise = 1, connectivity = "HIGH", availability = "TRUE"},
new PostCode() {postcode = "XYZ 123", premise = 2, connectivity = "LOW", availability = "TRUE"},
new PostCode() {postcode = "XYZ 123", premise = 3, connectivity = "LOW", availability = "FALSE"},
new PostCode() {postcode = "ABC 234", premise = 1, connectivity = "HIGH", availability = "FALSE"},
new PostCode() {postcode = "ABC 123", premise = 2, connectivity = "HIGH", availability = "FALSE"}
};
var results = postCodes.GroupBy(x => x.postcode)
.Select(x => x.GroupBy(y => y.premise).Select(z => new { item = z, count = z.Count() }).ToList())
.ToList();
}
}
public class PostCode
{
public string postcode {get; set;}
public int premise { get; set; }
public string connectivity { get; set; }
public string availability { get; set; }
}
推荐阅读
- swift - 带有 CoreData 的 Siri 意图
- c# - 用 C# 编写程序,根据 Id (txtBxNumber),它将更新或在文本文件和富文本框中创建新记录
- matrix - 如何在 DolphinDB 中有效地基于向量生成矩阵?
- azure-cosmosdb - Cosmos db查询成本和性能取决于同一分区中的项目数?
- intellij-idea - 如何在 IntelliJ 提交差异对话框中选中/取消选中单个更改复选框?
- python - 如何用两个新维度替换 xarray 对象的当前维度
- python - “FileNotFoundError:[Errno 2] 没有这样的文件或目录:”尽管使用了完整路径
- elasticsearch - 如何对弹性搜索进行嵌套搜索?
- mingw - mingw/lib 与 msys/1.0/lib 之间的区别?
- php - 问:如何在 laravel 的控制器中制作条件构造函数语句