if-else句を12回使用せずにこのタスクを実行するための最良の方法は何ですか。タスクはこれです:
if(mon=="1")
{
month="JAN";
}
else if(mon=="2")
{
month="FEB";
}
等々..
if-else句を12回使用せずにこのタスクを実行するための最良の方法は何ですか。タスクはこれです:
if(mon=="1")
{
month="JAN";
}
else if(mon=="2")
{
month="FEB";
}
等々..
このコードを使用してみてください
using System.Globalization;
var month = 7;
var dtf = CultureInfo.CurrentCulture.DateTimeFormat;
string monthName = dtf.GetMonthName(month);
string abbreviatedMonthName = dtf.GetAbbreviatedMonthName(month);
これに代わる方法は、配列を使用することです。
string[] months = new string[]{"JAN", "FEB", "MAR",..., "DEC"};
string month = months[value - 1];
-1
インデックスはゼロから始まるからです。
また
System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(1)
using System.Globalization;
CultureInfo.CurrentCulture.DateTimeFormat.AbbreviatedMonthNames[int.Parse(mon)-1];
Switch-Caseを使用する:
switch(mon)
{
case "1":
month = "JAN";
break;
case "2":
month = "FEB";
break;
default:
month = string.Empty; // OR throw exception
break;
}
別のオプション:
switch (int.parse(mon))
{
case 1: return "JAN";
case 2: return "FEB";
//...
case 12: return "DEC";
default: return "???";
}
// Azodious notes that switches work on strings too, so you can also do:
switch (mon)
{
case "1": return "JAN";
case "2": return "FEB";
//...
case "12": return "DEC";
default: return "???";
}
または、John Wooが示したものと同様に、配列へのインデックスとして(ただし、最初に解析する必要がありますmon
)int
。