Vraag : Hoe kan C# substrings zeer snel aanpassen?

In het probleemvoorbeeld hieronder, wordt elk punt in „usableItems“ gezocht in de structuur van „originalItems“ gegevens. Elk punt dat niet wordt gevonden wordt geplaatst in het discardedItemskoord array.

PROBLEM EXAMPLE
string [] usableItems = {„1“, „b7“, „13“};
string [] originalItems = {„1“, „3“, „5“, „b7“, „9“, „11“, „13“};
string [] discardedItems = {„3“, „5“, „9“, „11“}; //final result

How zou a. c. # programmastructuur de gegevens en de logica moeten om de tijd te minimaliseren om de definitieve genoemde koordserie te bouwen „discardedItems“?

I denkt Regex en IndexOf zou waarschijnlijk langzaam zijn. En ik ben niet zeker over op de een of andere manier het gebruiken van klusjes [] series. Ook, zou er overweging van een woordenboek voor snelle raadpleging kunnen zijn, maar anderzijds zal het vestigen van het woordenboek ook tijd vereisen. De REGELS/>SOME van Hmmm.

(1) de punten vertegenwoordigt numeriek de nota's in gemeenschappelijke pianosnaren. Er zijn honderden snaren, met variaties in sharps, vlakten, en aantal aan te passen en aan te passen punten. De typische punten zijn „3“, „#5“, „7“, „b7“, „#9“, „b11“, „11“, „#11“, „b13“, etc.
(2) de punten altijd numeriek van links naar rechts verhogen. />(3) de Punten
(4) daar kunnen van 1 tot 7 „originalItems“ zijn.
(5) kan daar van 1 tot 7 „usableItems“ zijn.
(6) Er zal nooit meer „usableItems“ dan „originalItems“ zijn.
(7) Elk punt in „usableItems“ ALTIJD in „originalItems“ BESTAAT.

NOTE: Om dit probleem te geven, worden de koordseries gebruikt voor „usableItems“ en „originalItems“, maar slechts moet het eindresultaat „discardedItems“ een koordserie zijn.

I zou oprecht één of andere code ideas.
waarderen

Antwoord : Hoe kan C# substrings zeer snel aanpassen?

Hallo chaffinsjc;

Als u Visuele Studio gebruikt. Netto 2008 of 2010 dan kunt u de vastgestelde exploitant behalve gebruiken om te krijgen wat u nodig hebt.

Fernando
1:
2:
3:
4:
5:
6:
// die de originelen maken als Lijst zal meer effecent zijn
Lijst usableItems = nieuwe Lijst () {„1“, „b7“, „13“};
Lijst originalItems = nieuwe Lijst () {„1“, „3“, „5“, „b7“, „9“, „11“, „13“};

// het koordSerie van het Resultaat
koord [] discardedItems = originalItems.Except (usableItems) .ToArray ();
Andere oplossingen  
 
programming4us programming4us