我正在做一个简单的测验,你会得到一个问题"如何在波兰语中调用月xxx?"。我已经完成了一个带有月份的数组列表,随机从列表中选择了一个月,但我不知道如何检查键入的月份是否正确。有任何想法吗? 这是我迄今为止所做的代码;
Random random = new Random();
string[] miesiac = { "STYCZEŃ", "LUTY", "MARZEC", "KWIECIEŃ", "MAJ", "CZERWIEC", "LIPIEC", "SIERPIEŃ", "WRZESIEŃ", "PAŹDZIERNIK", "LISTOPAD", "GRUDZIEŃ" }; //months in polish
string randommonth = (miesiac[random.Next(12)]);
Console.WriteLine("Cześć, proszę powiedz mi jak jest " + randommonth + " po angielsku.");
string answer = Console.ReadLine();
在这里,我被困住,因为我不知道如何检查答案是否正确。我知道我将不得不做另一个数组列表与第二语言的月份,但我不知道如何检查它们,因为它都是随机的。
答案 0 :(得分:1)
您可以比较索引。以下是生成月份名称的另一种方法:
var pl = new CultureInfo("pl-PL");
var en = new CultureInfo("en-GB");
var polishMonths = Enumerable.Range(1, 12).Select(i => pl.DateTimeFormat.GetMonthName(i)).ToArray();
var englishMonths = Enumerable.Range(1, 12).Select(i => en.DateTimeFormat.GetMonthName(i)).ToArray();
现在您可以使用Array.FindIndex
:
int polishIndex = random.Next(12);
string randomPolishMonth = polishMonths[polishIndex];
string answer = Console.ReadLine();
int englishIndex = Array.FindIndex(englishMonths, m => String.Compare(answer, m, true) == 0);
bool isCorrect = englishIndex == polishIndex;
答案 1 :(得分:0)
基本上你需要两个字典,一个用于抛光,一个用于英语月份:
var polish = new Dictionary<int, string> = // ...
var english = new Dictionary<int, string> = // ...
现在您要检查用户输入
int i = random.Next(12);
string answer = Console.ReadLine();
if (answer == english[i]) Console.WriteLine("Correct");
或者,如果你想检查答案是否正确,那么可以选择:
if (answer == polish[i]) Console.WriteLine("Correct");
答案 2 :(得分:0)
你可以通过很多方式做到这一点。 这是一个可能的灵魂: 使用ID和对象创建Dic,将以英语和波兰语存储月份名称。
Dictionary<int, MonthObj>;
比随机数并存储它。
例如:
int i = random.Next(12);
然后从字典中获取值并检查值是否正确。