Una stringa non è un numero, quindi si sta confrontando lessicografico (da sinistra a destra). String.CompareTo
viene utilizzato per l'ordine, ma si noti che "10"
è "inferiore" a "2"
poiché il char 1
è già inferiore rispetto al char 2
.
suppongo quello che vuoi vuoi è quello di convertirlo in un int
:
int i1 = int.Parse(string1);
if (i1 < 10)
{
Console.WriteLine("less than 10");
}
else if (i1 >= 10)
{
Console.WriteLine("10 or more");
}
nota che si dovrebbe usare int.TryParse
se string1
potrebbe avere un formato non valido. In quel modo si evita un'eccezione a int.Parse
, ad esempio:
int i1;
if(!int.TryParse(string1, out i1))
{
Console.WriteLine("Please provide a valid integer!");
}
else
{
// code like above, i1 is the parsed int-value now
}
Tuttavia, se si desidera invece controllare se una stringa è più o più breve di 10 caratteri, è necessario utilizzare è Length
proprietà:
if (string1.Length < 10)
{
Console.WriteLine("less than 10");
}
else if (string1.Length >= 10)
{
Console.WriteLine("10 or more");
}
fonte
2013-10-02 08:03:10
Intendi 'stringa' o' stringa.Lunghezza'? –