Ho il seguente metodo che ho creato che funziona bene se effettivamente c'è il delimitatore in questione. Voglio tenerlo fuori da LINQ per ora ...Metodo Split Split Method Problema quando non sono inclusi i delimitatori
ad es.
Se passo nella stringa "123; 322; 323" funziona alla grande.
Ma se passo solo un valore di stringa senza il delimitatore come "123" ovviamente non lo dividerò poiché non c'è delimitatore. Sto solo cercando di capire il modo migliore per controllare e conto di questo ed essere in grado di sputare che un valore di nuovo nella lista
public static List<int> StringToList(string stringToSplit, char splitDelimiter)
{
List<int> list = new List<int>();
if (string.IsNullOrEmpty(stringToSplit))
return list;
string[] values = stringToSplit.Split(splitDelimiter);
if (values.Length < 1)
return list;
foreach (string s in values)
{
int i;
if (Int32.TryParse(s, out i))
list.Add(i);
}
return list;
}
aggiornamento: Questo è ciò che mi si avvicinò con che sembra funzionare, ma certo è lunga
public static List<int> StringToList(string stringToSplit, char splitDelimiter)
{
List<int> list = new IntList();
if (string.IsNullOrEmpty(stringToSplit))
return list;
if (stringToSplit.Contains(splitDelimiter.ToString()))
{
string[] values = stringToSplit.Split(splitDelimiter);
if (values.Length <= 1)
return list;
foreach (string s in values)
{
int i;
if (Int32.TryParse(s, out i))
list.Add(i);
}
}
else if (stringToSplit.Length > 0)
{
int i;
if(Int32.TryParse(stringToSplit, out i))
list.Add(i);
}
return list;
}
Hai mai provato questo? – Marc
Oppure lo ha debugato? – tster
Sì, non l'ho postato a meno che non l'abbia debugato. – PositiveGuy