给定:
一个字符串 dayCodes
(即 "MWF"
或 "MRFU"
),我需要拆分并创建一个字符串集合,这样我就可以获得星期几字符串列表(即 "Monday", "Wednesday", "Friday"
或 "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);
问题:
问题是你不能投Char
至 String
我想这是有道理的,因为一个不是从另一个继承的。您仍然认为编译器会强制转换 Char
。作为一个字符长 String
.
有没有一种快速的方法(比如使用 Cast<string>()
)来做到这一点,这样我就不必创建 List<string>
从零开始?
最佳答案
仅使用 char.ToString()
会工作:
var daysArray = days.ToCharArray().Select( c => c.ToString()).ToArray();
或者,在我看来有一个更好的解决方案,为什么不直接将字符串与字典一起用于映射:
var daysArray = days.Select( c => dayMapping[c]).ToArray();
与 dayMapping
只是一个Dictionary<char, string>
映射到全天名称:
Dictionary<char, string> dayMapping = new Dictionary<char,string>()
{
{ 'M', "Monday" },
{ 'T', "Tuesday" }
//and so on
}
关于c# - 如何将字符数组转换为字符串数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7936235/