Dane:Jak przekonwertować tablicę znaków na tablicę znaków?
Ciąg dayCodes
(tj "MWF"
lub "MRFU"
), że muszę podzielić i stworzyć zbiór ciągów więc mogę mieć listę dniu strun tygodniu (tj "Monday", "Wednesday", "Friday"
lub "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);
Problem:
Problem polega na tym, że nie można rzucać Char
do String
co chyba ma sens, ponieważ nie jest dziedziczona od drugiego. Nadal można by pomyśleć, że kompilator rzuciłby Char
jako jeden znak długi String
.
Czy istnieje szybka metoda (na przykład użycie Cast<string>()
), aby to zrobić, więc nie muszę tworzyć od podstaw List<string>
?
Warto rozważyć użycie enum System.DayOfWeek zamiast magicznego łańcucha tutaj. – uglybugger
@uglybugger Zgadzam się, poza tym, że punktem metody, którą tworzę, jest łączenie łańcuchów, więc to po prostu więcej kodu (tj. Wywoływanie '.ToString()' na wszystkim – DJTripleThreat