ich eine Sammlung von gedruckten Dokumenten haben:Linq zurückgeben eindeutige Datensätze mit Anzahl der Duplikate
- orderDetailId, submittedDate, printedCount
- 1,1 Jan 2106,1
- 1,1 Jan 2106,1
- 2,3 Jan 2106,1
- 3,5 Jan 2106,1
- 4,6 Jan 2106,1
Ich kann alle einzigartige Datensätze mit bekommen:
private static IQueryable<OrderFields> GetUniqueJobs(IQueryable<OrderFields> jobs)
{
IQueryable<OrderFields> uniqueJobs = jobs.GroupBy(x => x.OrderDetailId).Select(group => group.First());<br/>
return uniqueJobs.OrderBy(x => x.SubmittedDate);
}
aber ich würde das Feld printedCount wie die Anzahl der jedes Dokument gedruckt wurde, haben:
- 1,1 Januar 2106, 2
- 2,3 Jan 2106,1
- 3,5 Jan 2106,1
- 4,6 Jan 2106,1
würde ich für jede Hilfe
Dank für die bisherigen schnellen Antworten dankbar sein, aber ich habe nicht richtig wie die Frage. Ich kann illustrieren, was ich mit etwas langsamen hässlichen Code will, aber das funktioniert nicht wirklich ;-)
private static List<OrderFields> GetUniqueJobs(IQueryable<OrderFields> jobs)
{
Guid lastOrderDetailId = Guid.Empty;
List<OrderFields> uniqueJobs = new List<OrderFields>();
jobs = jobs.OrderBy(x => x.OrderDetailId);
foreach (var job in jobs)
{
Guid orderDetailId = job.OrderDetailId;
if (orderDetailId != lastOrderDetailId)
{
uniqueJobs.Add(job);
}
else
{
uniqueJobs[uniqueJobs.Count - 1].Printed++;
}
}
return uniqueJobs;
}
Können Sie helfen?
Graf ist in diesem Zusammenhang falsch. Sie müssen Sum verwenden, um die richtige Anzahl gedruckter Dokumente zu erhalten. Und Sie müssen nicht nach SubmittedDate gruppieren. – Julia
@Julia danke, ich habe nicht auf PrinceCount Spalte aufgepasst. –