を考える:私は週文字列(すなわち"Monday", "Wednesday", "Friday"
または"Monday", "Thursday", "Friday", "Sunday"
)の日のリストを持つことができますので、文字列のコレクションを分割して作成する必要が文字配列を文字列配列に変換するには?
文字列dayCodes
(すなわち"MWF"
または"MRFU"
)。
// 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);
問題:
問題は、あなたがChar
私は、一方が他方から継承されていないため、理にかなっていると思いますString
にキャストすることができないということです。それでも、コンパイラはを1文字の長さでキャストすると思うでしょう。String
をゼロから作成する必要はありません(Cast<string>()
を使用するような)簡単な方法がありますか?
ここでも魔法の文字列の代わりにSystem.DayOfWeek列挙型を使用することを検討する価値はあります。 – uglybugger
@uglybugger私が作っている方法のポイントは、文字列を連結してもっとコードになるようにすることです(つまり、すべての場合に '.ToString()'を呼び出す必要があります)。 – DJTripleThreat