我正在使用下面的邏輯來將List列合併在一起,如果它們具有除了一個(OtherAuditeesUserName)以外的所有列相同的列。在這種情況下,我加入OtherAuditeesUserName的不同值之間用逗號seperater在列表中合併行。如果一列具有不同的值
原始列表如下:
TrailRemarkId,PreviousAudit,OtherAuditees,StrategicPriority,觀測,DocumentsReviewed
1, 「老審計」 「簡·史密斯」,1,無,doc.docx
1, 「老審計」, 「約翰·柯林斯」,1,無,doc.docx
最終的結果我找的是:
TrailRemarkId,PreviousAudit,OtherAuditees,StrategicPriority,觀測,DocumentsReviewed
1, 「老審計」, 「簡smaith,約翰·柯林斯」,1,無,doc.docx
看到OtherAuditees如何利用加盟一個逗號。
有人能指出一種更有效的方式來合併List行嗎?
var trailRemarks = (from a in auditData
select new
{
a.TrailRemarkId,
a.PreviousAudit,
a.OtherAuditees,
a.StrategicPriority,
a.Observations,
a.DocumentsReviewed,
}).Distinct();
List<TrailRemarkEntity> trlist = new List<TrailRemarkEntity>() ;
int? trId = 0;
foreach (var tr in trailRemarks)
{
if (trId == 0 || (trId != tr.TrailRemarkId))
{
trlist.Add(
new TrailRemarkEntity()
{
TrailRemarkId = tr.TrailRemarkId ?? 0,
PreviousAuditName = tr.PreviousAudit,
DocumentsReviewed = tr.DocumentsReviewed,
StrategicPriorityName = tr.StrategicPriority,
OtherAuditeesUserName = tr.OtherAuditees,
Observations = tr.Observations
}
);
}
else
{
var existingTR = trlist.Last();
existingTR.OtherAuditeesUserName += ", " + tr.OtherAuditees;
}
trId = tr.TrailRemarkId;
}
你的問題不太清楚。您似乎想通過「TrailRemarkId」進行分組(爲其獲取一個「結果行」),併爲「OtherAuditees」包含逗號分隔的列表。但是,您的數據也可能包含「TrailRemarkEntity」中所有其他字段的不同值,例如,每個'OtherAuditee'的不同觀察值。在這種情況下你的預期結果是什麼? – Alex