Tengo el siguiente método que he creado que funciona bien si realmente está el delimitador en cuestión. Quiero mantener esto fuera de LINQ por ahora ...Método de utilidad de división de cadenas Problema cuando no se incluyen delimitadores
p.
Si paso la cadena "123; 322; 323", funciona muy bien.
Pero si solo paso en un valor de cadena sin el delimitador como "123" obviamente no se dividirá ya que no hay delimitador. Estoy tratando de averiguar la mejor manera de comprobar y dar cuenta de esto y ser capaz de escupir que un valor de nuevo en la 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;
}
Actualizado: Esto es lo que ocurrió con la que parece funcionar, pero seguro es largo
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;
}
¿Has probado esto? – Marc
¿O lo depuró? – tster
Sí, no publiqué a menos que lo haya depurado. – PositiveGuy