簡體   English   中英

從不同的值合並列表中的項目

[英]merge items in list from distinct value

我有以下模型:

class serverMaster
{
    public string vm { get; set; }
    public string bm { get; set; }
    public string incrday { get; set; }
    public string incrtime { get; set; }
    public string fullday { get; set; }
    public string fulltime { get; set; }
    public string backupgroup { get; set; }
    public serverMaster(string vm1, string bm1, string incrday1, string incrtime1, string fullday1, string fulltime1, string backupgroup1)
    {
        vm = vm1;
        bm = bm1;
        incrday = incrday1;
        incrtime = incrtime1;
        fullday = fullday1;
        fulltime = fulltime1;
        backupgroup = backupgroup1;

    }
}

我有一個這樣的數據集:

在此處輸入圖片說明

如何使用 Linq 在第一列中查找重復項(例如合並 Aether)並連接其他字段。

理想情況下,我希望看到這樣的輸出:

在此處輸入圖片說明

您想要做的是在關鍵字段上使用GroupBy (根據您的評論和模型,我假設它是vm ,然后對其他字段執行聚合操作。從您的示例數據中,您要連接字符串:

var result = allItems.GroupBy(item => item.vm)
                     .Select(group => new serverMaster {
                         vm = group.Key,
                         incrday = string.Join(", ", group.Select(i => i.incrday)),
                         incrtime = string.Join(", ", group.Select(i => i.incrtime)),
                         fullday = string.Join(", ", group.Select(i => i.fullday)),
                         fulltime = string.Join(", ", group.Select(i => i.fulltime)),
                         backupgroup = string.Join(", ", group.Select(i => i.backupgroup))
                     }).ToList();

由於您沒有默認構造函數,您應該:

var result = allItems.GroupBy(item => item.vm)
                     .Select(group => new serverMaster (
                         group.Key,
                         string.Join(", ", group.Select(i => i.incrday)),
                         string.Join(", ", group.Select(i => i.incrtime)),
                         string.Join(", ", group.Select(i => i.fullday)),
                         string.Join(", ", group.Select(i => i.fulltime)),
                         string.Join(", ", group.Select(i => i.backupgroup))
                     )).ToList();

你可以看看:對象初始值設定項和構造函數有什么區別?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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