簡體   English   中英

Linq分組依據並選擇子分組中最常出現的項目

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM