dizionario in c#

Pubblicità

Lex92

Utente Attivo
Messaggi
174
Reazioni
7
Punteggio
38
devo fare un programma che ordini un arraylist in cui ci sono delle stringhe composte da sole lettere .. in pratica un dizionario ma ho vari problemi ...sto provando ma mi trovo con 3 cicli for uno dentro all'altro e tanto altro ... e vado in panne :help:.. qualcuno ha il codice in c# che funge da dizionario ? o qualche importante dritta ?
 
Sono un po' a secco di programmazione in questo periodo, ma ricordo che esiste la funzione compare(o string compare) che restituisce -1,0,1. Lo zero indica che sono la stessa parola, 1 e -1 che una è maggiore dell'altra, non ricordo l'ordine.

Poi cerca di utilizzare i foreach ;)
 
Sono un po' a secco di programmazione in questo periodo, ma ricordo che esiste la funzione compare(o string compare) che restituisce -1,0,1. Lo zero indica che sono la stessa parola, 1 e -1 che una è maggiore dell'altra, non ricordo l'ordine.

Poi cerca di utilizzare i foreach ;)

Non so se lo strcmp c'è anche in c#, perchè è una funzione C, ma è una buona idea... se esiste una funzione che ti dice se una stringa è maggiore, minore o uguale all'altra (per esempio abc > aba ) cercati il codice di un insertion sort o di un selection sort online e adattalo ai tuoi scopi!
 
Non so se lo strcmp c'è anche in c#, perchè è una funzione C, ma è una buona idea... se esiste una funzione che ti dice se una stringa è maggiore, minore o uguale all'altra (per esempio abc > aba ) cercati il codice di un insertion sort o di un selection sort online e adattalo ai tuoi scopi!

Esiste la string.compare() in C#, comunque è molto facile creare qualcosa di simile, posto una bozza ridicola:
Codice:
public static int strcmp (string stringa, string stringb)
		{
			int length;
			
			if (stringa.Length >= stringb.Length)
			{
				length = stringb.Length;
			}
			else length = stringa.Length;
			
			for (int i = 0; i < length; i++)
			{
				if (stringa[i] < stringb[i])
				{
					return -1; //stringa minore di stringb					
				}
				else if (stringa[i] > stringb[i])
				{
					return 1; //stringa maggiore di stringb					
				}
				else if (i == length)
				{
					if (stringa.Length >= stringb.Length)
						return -1; //anche se sono uguali
					else return 1;
				}
			}			
			return 0; //errore
		}

Sarà anche cannata, ho scritto di getto.
 
Pubblicità
Pubblicità
Indietro
Top