有光泽和英语月的测验

时间:2015-06-25 11:08:48

标签: c# arrays random

我正在做一个简单的测验,你会得到一个问题"如何在波兰语中调用月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();

在这里,我被困住,因为我不知道如何检查答案是否正确。我知道我将不得不做另一个数组列表与第二语言的月份,但我不知道如何检查它们,因为它都是随机的。

3 个答案:

答案 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);

然后从字典中获取值并检查值是否正确。