[英]Linq group by and select most occuring item in sub group
在下面的這種情況下,我一直在用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; }
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.