Questione : Come possono le sottostringhe del fiammifero di C# molto digiunare?

Nell'esempio di problema qui sotto, ogni articolo “usableItems„ è cercato nella struttura di dati “dei originalItems„. Ogni articolo che non è trovato è disposto nei usableItems della stringa array.

PROBLEM EXAMPLE
string dei discardedItems [] = {“1„, “b7„, “13„}; originalItems del
string [] = {“1„, “3„, “5„, “b7„, “9„, “11„, “13„}; discardedItems del
string [] = {“3„, “5„, “9„, “11„}; il result

How di //final dovrebbe struttura di programma # di corrente alternata i dati e la logica minimizzare il momento di sviluppare l'allineamento finale della stringa chiamato “discardedItems„? il

I pensa che Regex e IndexOf probabilmente siano stati lenti. E non sono sicuro circa usando gli allineamenti del carbone [] in qualche modo. Inoltre, ci potrebbe essere considerazione di un dizionario per occhiata rapida, ma d'altra parte stabilire il dizionario inoltre richiederà il tempo. REGOLE di Hmmm.

SOME (volere appena spiegare chiaramente):
(1) gli articoli rappresentano numericamente le note nelle corde comuni del piano. Ci sono centinaia di corde, con le variazioni negli sharps, appartamenti e numero degli articoli al fiammifero e/o be sono abbinati. Gli articoli tipici sono “3„, “#5„, “7„, “b7„, “#9„, “b11„, “11„, “#11„, “b13„, etc.
(2) gli articoli aumentano sempre numericamente da sinistra a destra.
(3) gli articoli non fanno repeat.
(4) là può essere 1 - 7 “originalItems„.
(5) là può essere 1 - 7 “usableItems„.
(6) là non sarà mai più “usableItems„ che “i originalItems„.
(7) ogni articolo “nei usableItems„ ESISTE SEMPRE “nei originalItems„.

NOTE: Per presentare questo problema, gli allineamenti della stringa sono usati per “i usableItems„ e “i originalItems„, ma soltanto il risultato finale “discardedItems„ deve essere un allineamento della stringa. il

I apprezzerebbe francamente un certo codice ideas.
class= del

Risposta : Come possono le sottostringhe del fiammifero di C# molto digiunare?

Ciao chaffinsjc;

Se stiate usando lo studio visivo. Reti 2008 o 2010 allora potete usare l'operatore dell'insieme tranne per ottenere di che cosa avete bisogno.

Fernando
1:
2:
3:
4:
5:
6:
// che fa gli originali come lista sarà più effecent
Elencare i usableItems = nuova lista () {“1„, “b7„, “13„};
Elencare i originalItems = nuova lista () {“1„, “3„, “5„, “b7„, “9„, “11„, “13„};

Allineamento della stringa di risultato di //
mettere insieme [] i discardedItems = originalItems.Except (usableItems) .ToArray ();
Altre soluzioni  
 
programming4us programming4us