Question : Comment les sous-chaînes d'allumette de C# peuvent-elles très jeûner ?

Dans l'exemple de problème ci-dessous, chaque article dans des « usableItems » est recherché dans la structure de données de « originalItems ». Chaque article qui n'est pas trouvé est placé dans les usableItems de la corde array.

PROBLEM EXAMPLE
string de discardedItems [] = {« 1 », « b7 », « 13 »} ; originalItems du
string [] = {« 1 », « 3 », « 5 », « b7 », « 9 », « 11 », « 13 »} ; discardedItems du
string [] = {« 3 », « 5 », « 9 », « 11 »} ; le result

How de //final devrait structure de C.A. # de programme les données et la logique réduire au minimum l'heure d'établir la rangée finale de corde appelée des « discardedItems » ? le

I pensent que Regex et IndexOf seraient probablement lents. Et je ne suis pas sûr au sujet d'employer des rangées de char [] de façon ou d'autre. En outre, il pourrait y avoir considération d'un dictionnaire pour la consultation rapide, mais d'autre part l'établissement du dictionnaire aura besoin d'également le temps. RÈGLES de Hmmm.

SOME (vouloir juste expliquer clairement) : Le
(1) les articles représentent numériquement les notes dans les cordes communes de piano. Il y a des centaines de cordes, avec des variations des dièses, des appartements, et nombre d'articles à l'allumette et/ou soit assorti. Les articles typiques sont « 3 », « #5 », « 7 », « b7 », « #9 », « b11 », « 11 », « #11 », « b13 », etc.
(2) que les articles augmentent toujours numériquement de gauche à droite. Les articles du
(3) ne font pas repeat.
(4) là peuvent être de 1 à 7 « originalItems ». Le
(5) là peut être de 1 à 7 « usableItems ». Le
(6) là ne sera jamais plus de « usableItems » que des « originalItems ». Le
(7) article dans des « usableItems » TOUJOURS EXISTE dans des « originalItems ».

NOTE : Pour présenter ce problème, des rangées de corde sont employées pour des « usableItems » et des « originalItems », mais seulement le résultat final « discardedItems » doit être une rangée de corde. le

I apprécierait sincèrement un certain code ideas.
class= de

Réponse : Comment les sous-chaînes d'allumette de C# peuvent-elles très jeûner ?

Salut chaffinsjc ;

Si vous employez le studio visuel. Le filet 2008 ou 2010 alors pour obtenir vous pouvez employer l'opérateur d'ensemble excepté de ce que vous avez besoin.

Fernando
1 :
2 :
3 :
4 :
5 :
6 :
// faisant les originaux comme liste sera effecent
Énumérer les usableItems = la nouvelle liste () {« 1 », « b7 », « 13 »} ;
Énumérer les originalItems = la nouvelle liste () {« 1 », « 3 », « 5 », « b7 », « 9 », « 11 », « 13 »} ;

Rangée de corde de résultat de //
ficeler [] les discardedItems = l'originalItems.Except (usableItems) .ToArray () ;
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us