Ich möchte eine gruppierte Liste der neuen, gelöschten, gemeinsamen Elemente erstellen. Ich mache es derzeit so:Gibt es eine effizientere Möglichkeit zum Erstellen einer gruppierten Liste
public class ListSortingGroupingTest
{
List<int> OldList = new List<int> { 1, 2, 3, 4, 5 };
List<int> NewList = new List<int> { 3, 4, 5, 7, 8, 9 };
public void CreateGroupedList()
{
var deleted = OldList.Except(NewList).Select(i => new { Group = "Deleted", Number = i });
var added = NewList.Except(OldList).Select(i => new { Group = "Added", Number = i});
var common = NewList.Intersect(OldList).Select(i => new { Group = "Common", Number = i});
var result = deleted.Union(added).Union(common);
}
}
Dies funktioniert. Aber ich fragte mich, ob es einen besseren oder effizienteren Weg gab?
Schließlich möchte ich in einer WPF Grouped ListView daran binden.
Fantastische Antwort und nachweislich effizienter. Ich habe eine Stoppuhr sowohl über meine als auch über Ihre Implementierung mit den folgenden Ergebnissen ausgeführt: ME => Ausführungszeit: 16954 (6ms) YOU => Ausführungszeit: 1321 (0ms) – John