c# - 当与 int 数组和 for 循环一起使用时,使数组中的字符串复数

标签 c# arrays for-loop

好的,所以我编写了一个代码,其中包含带有一些 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/

相关文章:

c# - 你会不会有太多 "protected virtual"方法?

c# - 如何使用 for 循环调用相似命名的文件

c# - 使用 StyleCopAnalyzers (Roslyn) 时如何启用替代 StyleCop 规则(以 SX 为前缀)?

c# - 面板中按钮的位置不在表单中

java - 如何通过字符串打印出数组中的名称列表?

r - 使用 purrr::map 抓取多篇文章,而不是 R 中的 for 循环

c++ - 如何在 C++ 中选择多维数组中的范围?

javascript - JSON.stringify 不转换数组

javascript - 尝试将多个值插入数组(同位素)

java - for循环不会循环