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