dado:¿Cómo convertir una matriz de caracteres a una matriz de cadenas?
Una cadena dayCodes
(es decir "MWF"
o "MRFU"
) que necesito para dividir y crear una colección de cadenas para que pueda tener una lista de los días de la semana las cadenas (es decir "Monday", "Wednesday", "Friday"
o "Monday", "Thursday", "Friday", "Sunday"
).
// this causes a run-time exception because you can't cast Char to String
var daysArray = days.ToCharArray().Cast<string>().ToArray();
// for each dayCode, overwrite the code with the day string.
for (var i = 0; i < daysArray.Length; i++)
{
switch (daysArray[i])
{
case "M":
daysArray[i] = "Monday";
break;
case "T":
daysArray[i] = "Tuesday";
break;
case "W":
daysArray[i] = "Wednesday";
break;
case "R":
daysArray[i] = "Thursday";
break;
case "F":
daysArray[i] = "Friday";
break;
case "S":
daysArray[i] = "Saturday";
break;
case "U":
daysArray[i] = "Sunday";
break;
}
}
daysArray[daysArray.Length - 1] = "and " + daysArray[daysArray.Length - 1];
return string.Join(", ", daysArray);
Problema:
El problema es que no se puede convertir Char
-String
que supongo que tiene sentido porque no se hereda de la otra. Aún así, usted pensaría que el compilador emitiría el Char
como un carácter largo String
.
¿Hay una manera rápida (como usar Cast<string>()
) para hacer esto así que no tengo que crear un List<string>
desde cero?
Vale la pena considerar el uso de la enumeración System.DayOfWeek en lugar de una cadena mágica aquí también. – uglybugger
@uglybugger Estoy de acuerdo, excepto que el objetivo del método que estoy haciendo es concatenar cadenas para que sea más código (es decir, tener que llamar a '.ToString()' en todo. – DJTripleThreat