好的,所以我编写了一个代码,其中包含带有一些 for 循环的字符串/整数数组。在我的代码中,有一部分计算了超过 1 个字符串,但是当字符串超过一个时,如何使字符串复数?这是我正在谈论的代码的一部分:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class VoidFunctions : MonoBehaviour
{
public string[] Enemies = {"Ghoul", "Skeleton", "Zombie"};
public int[] enemyCount = {1, 2, 2};
public virtual void Start()
{
for (int i = 0; i < Enemies.Length; i++)
{
Fight(Enemies[i], enemyCount[i]);
}
}
void Fight(string enemy, int amount)
{
print(this.name + " encountered a " + enemy);
print(this.name + " killed " + amount + " " + enemy);
}
}
所以对于第二个字符串“Skeleton”,有 2 killed 但结果是“killed 2 Skeleton”...如何将其变为复数?
最佳答案
正如 Ness Rosales 所说,您可以使用多元化软件或转换图表。尽管对于此类项目,如果您的项目少于 20 个,我会认为使用此类软件有点过分。
我要做的是改变敌人数组,使每个名词同时具有单数和复数形式:
public string[][2] Enemies =
{
{“Ghoul”, ”Ghouls”}, {“Skeleton”, “Skeletons”}, {“Zombie”, “Zombies”}
};
从这里,您可以使用 if
/else
语句来根据数量获取每个名词的字符串 0 或 1。
关于c# - 当与 int 数组和 for 循环一起使用时,使数组中的字符串复数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46652497/