Was ist der effizienteste Weg, / Art Elemente aus zwei Arrays zu vergleichen?
-
16-09-2019 - |
Frage
Ich habe eine Frage zu effizienter Umsetzung. Lets sagen, ich habe zwei Arrays:
One array is all possible items in a house: Table, Chair, TV, Fireplace, Bed The other is an array of items in a particular house: Table, TV, Bed
Ich habe auch zwei Listenfelder:
1. listbox for items in the house - the "HAS" list box 2. listbox items not in the house - the "NEEDS" list box
Ich brauche die Elemente bereits in dem Haus in der „HAS“ Listenfeld sowie die Elemente aufzulisten, die nicht in dem Haus in der „needs“ Listenfeld sind. Es scheint mir, dass „Für jede“ Schleife verschachtelt ein Anfang zur Lösung dieses Problems wäre, aber ich bin nicht ganz sicher, welcher Fall verschachtelt werden muss. Was ist der effizienteste Weg, eine Aufgabe wie diese?
zu erreichenLösung
var allItems = (new [] {"Table", "Chair", "TV", "Fireplace", "Bed"});
var hasItems = (new [] {"Table", "Chair"});
var hasList = hasItems.ToList();
var needsList = allItems.Except(hasItems).ToList();
Andere Tipps
var allList = (new [] {"Table", "Chair", "TV", "Fireplace", "Bed"}).ToList();
var hasList = (new [] {"Table", "Chair"}).ToList();
var hasSet = new HashSet<string>(hasList);
var needsList = allList.Where(i => !hasList.Contains(i)).ToList();
Das ist ~ die schnellste Lösung (zumindest in O-Notation ).
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow