Я работал с switch statement
, и он отлично работает.Тем не менее, я хочу, чтобы дело оценивалось только один раз, и, если оно произойдет снова, не оценивайтеВот код, который я пробовал, который работает:
private static int total = 0;
private static string[] ErrorCode = new string[] { "@", "-2", "!" };
private static int Score(string[] errorCodes)
{
var sum = 0;
foreach (var ec in errorCodes)
{
switch (ec)
{
case "@":
sum += 1;
break;
case "-2":
sum += -2;
break;
case "!":
sum += 5;
break;
}
}
return sum; //This returns 4
}
Но, если массив string[]
имеет повторяющееся значение, он добавляет значение, которое вычисляется снова.Как это:
private static string[] ErrorCode = new string[] { "@", "-2", "!", "!" };
//This returns 9 (Because of "!") but would like to return 4
Как мне достичь оценки "!"
только один раз, или я должен выбрать другой подход?Спасибо за помощь!