在我的代码中,我创建了一个名为Combatant的类,然后创建了该类的两个实例,分别名为“ swastik”和“ ankit”,所有这些实例都有一个名为“ index”的整数。现在,我想初始化一个随机变量,根据我的代码,该变量将返回0或1作为值。然后我要检查该索引值属于哪个实例,这意味着如果该值为0,则控制台将返回swastik.firstName,如果该值为1,则它将返回ankit.firstName。
你们中的大多数人可能会说使用if / else方法,但是如果我假设有1000个Combatant Class实例,那么我是否必须编写if / else函数1000次?
谁能提供给我一个不太复杂的代码来做到这一点。
我的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Combat
{
class Program
{
static void Main(string[] args)
{
Combatant swastik = new Combatant();
swastik.CombatantInitialize("Swastik", "Bhattacharyya", 0);
Combatant ankit = new Combatant();
ankit.CombatantInitialize("Ankit", "Gupta", 1);
Random rndIndex = new Random();
var idxGet = rndIndex.Next(0, 2);
Object[,] combatants = new Object[,] { { 0, swastik.index }, { 0, 1 } };
Console.WriteLine(combatants[0,1]);
}
}
class Combatant
{
public string firstName;
public string lastName;
public string fullName;
public int index;
public void CombatantInitialize(string fName, string lName, int ind)
{
firstName = fName;
lastName = lName;
index = ind;
fullName = firstName + " " + lastName;
}
}
}
答案 0 :(得分:1)
只需将它们放入数组或列表中,然后使用索引来访问它们。
List<Combatant> list = new List<Combatant>();
list.Add(swastik);
list.Add(ankit);
由于idxGet
具有所需的随机值,因此请使用这样的列表
array[idxGet]
因此您的完整代码应为
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Combat
{
class Program
{
static void Main(string[] args)
{
Combatant swastik = new Combatant();
swastik.CombatantInitialize("Swastik", "Bhattacharyya", 0);
Combatant ankit = new Combatant();
ankit.CombatantInitialize("Ankit", "Gupta", 1);
List<Combatant> list = new List<Combatant>();
list.Add(swastik);
list.Add(ankit);
Random rndIndex = new Random();
var idxGet = rndIndex.Next(0, list.Count);
Console.WriteLine( array[idxGet].fullName );
}
}
class Combatant
{
public string firstName;
public string lastName;
public string fullName;
public int index;
public void CombatantInitialize(string fName, string lName, int ind)
{
firstName = fName;
lastName = lName;
index = ind;
fullName = firstName + " " + lastName;
}
}
}
答案 1 :(得分:1)
创建新项目时,您可以将它们直接添加到列表中,试试这个
class Program
{
List<Combatant> combatList = new List<Combatant>();
static void Main(string[] args)
{
Combatant swastik = new Combatant();
swastik.CombatantInitialize("Swastik", "Bhattacharyya", 0);
//add item to list
combatList.Add(swastik);
Combatant ankit = new Combatant();
ankit.CombatantInitialize("Ankit", "Gupta", 1);
//add item to list
combatList.Add(ankit);
Random rndIndex = new Random();
var idxGet = rndIndex.Next(0, combatList.Count);
//Output firstname to console
Console.WriteLine(combatList[idxGet].firstName);
}
}