Salve a tutti. Ho creato questo piccolo programmino che esegue (o meglio dovrebbe) il riordinamento dei alcune nomi digitati in input... Il problema è che non esegue il riodinamento degli elementi e non capisco il perchè...
p.s. Il programma è stato realizzato con interfaccia grafica(GUI).
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace ordinamentostringa
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
const int nmax = 100; //costante valore massimo cella array
int N = 0;
string[] vnomi = new string[nmax]; //array che contiene i nomi
void carica()
{
N=lstinput.Items.Count; //numero di elementi
for (int i = 0; i < N; i++)
vnomi[i] = lstinput.Items[i].ToString();
}//fine del sottoprogramma per caricare array
private void button1_Click(object sender, EventArgs e)
{
string input = "";
if (txtinserisci.Text.Length > 0)
{
input = txtinserisci.Text.ToString();
lstinput.Items.Add(input);
txtinserisci.Clear();
}
else
MessageBox.Show("Campo non compilato!");
}//fine di caricare il voto
private void btnelaborazione_Click(object sender, EventArgs e)
{
int i=0,j=0;
string deposito="";
carica(); //carica i dati con void
N = vnomi.Length; //lunghezza della listbox
//ciclo for per ordinare in ordine alfabetico le stringhe in input
for (i = 0; i < N; i++)
{
for (j = 0; j < N - 1; j++)
{
if (String.Compare(vnomi[i], vnomi[j + 1]) > 0)
{
deposito = vnomi[i];
vnomi[i] = vnomi[j + 1];
vnomi[j + 1] = deposito;
}//end if dello scambio degli elementi
}
}
for (int k = 0; k < N; k++)
{
lstordinato.Items.Add(vnomi[k]);
}
}//fine elaborazione
}
}
Grazie in anticipo