每次绘制 C# 删除数组元素
Removing array elements per draw C#
各位。对于初学者来说,这是我作为大学新生的第一个 C# 代码(在这里还是菜鸟),我提前用我的英语道歉。所以基本上我已经尝试解决这个问题 5 个小时了,我真的很擅长这个,这是我第一次post 在这里寻求帮助。
所以这段代码的目标是:
1.input 一个整数 1-2。 1 是平局,2 是退出
2.once 抽奖开始,代码将在该名称数组中获得一个随机索引
3.then 应从该名称数组中删除随机选取的元素,以获得新的随机元素。
4.the 重复该过程,直到打印时不再出现四个名称中的任何一个。
using System;
class Program
{
static void Main(string[] args)
{
bool isTrue = true;
while (isTrue)
{
//user choices
Console.WriteLine("[1]Draw\n[2]Exit\n");
//the input
Console.Write("Enter action: ");
int choices = Convert.ToInt32(Console.ReadLine());
//array of names
string[] names = {"Mr. Albert", "Mr. Joshua", "Mr. Bernard", "Mr. Raphael"};
//for random generating of names
Random rand = new Random();
int randNames = rand.Next(names.Length);
//Draw
if(choices == 1){
Console.WriteLine("Congrats "+names[randNames]);
names[randNames] = " ";
for(int i=0; i < names.Length; i++){
Console.WriteLine(names[i]);
}
}
else if(choices == 2){
isTrue = false;
}
}
}
}
}
所以我的主要问题出在这段代码中,其中包含给定的名称数组
string[] names = {"Mr. Albert", "Mr. Joshua", "Mr. Bernard", "Mr. Raphael"};
在这部分代码中,我很难理解
if(choices == 1){
Console.WriteLine("Congrats "+names[randNames]);
names[randNames] = " ";
for(int i=0; i < names.Length; i++){
Console.WriteLine(names[i]);
}
我在这里所做的是,每当我在这里抽取选中的数字时,都应该变成 " "
那个,或者只是让它看起来是空的,因为我抽了又抽了 3 次。我也尝试搜索这个问题,但没有成功。
结果将如下所示:
[1]Draw
[2]Exit
Enter action: 1
Congrats Mr. Albert
Mr. Joshua
Mr. Bernard
Mr. Raphael
[1]Draw
[2]Reset
[3]Exit
Enter action: 1
Congrats Mr. Joshua
Mr. Albert
Mr. Bernard
Mr. Raphael
[1]Draw
[2]Reset
[3]Exit
Enter action:
您可以在结果中看到它们不存在,但在下一次抽奖中它们仍然存在。
希望有人能帮助我,提前感谢您的帮助。
在 while 循环之前声明数组:
string[] names = {"Mr. Albert", "Mr. Joshua", "Mr. Bernard", "Mr. Raphael"};
while (isTrue)
{
//do your stuff
}
现在,您编辑数组并在下一次迭代中声明新数组,该数组未被编辑。
各位。对于初学者来说,这是我作为大学新生的第一个 C# 代码(在这里还是菜鸟),我提前用我的英语道歉。所以基本上我已经尝试解决这个问题 5 个小时了,我真的很擅长这个,这是我第一次post 在这里寻求帮助。
所以这段代码的目标是:
1.input 一个整数 1-2。 1 是平局,2 是退出
2.once 抽奖开始,代码将在该名称数组中获得一个随机索引
3.then 应从该名称数组中删除随机选取的元素,以获得新的随机元素。
4.the 重复该过程,直到打印时不再出现四个名称中的任何一个。
using System;
class Program
{
static void Main(string[] args)
{
bool isTrue = true;
while (isTrue)
{
//user choices
Console.WriteLine("[1]Draw\n[2]Exit\n");
//the input
Console.Write("Enter action: ");
int choices = Convert.ToInt32(Console.ReadLine());
//array of names
string[] names = {"Mr. Albert", "Mr. Joshua", "Mr. Bernard", "Mr. Raphael"};
//for random generating of names
Random rand = new Random();
int randNames = rand.Next(names.Length);
//Draw
if(choices == 1){
Console.WriteLine("Congrats "+names[randNames]);
names[randNames] = " ";
for(int i=0; i < names.Length; i++){
Console.WriteLine(names[i]);
}
}
else if(choices == 2){
isTrue = false;
}
}
}
}
}
所以我的主要问题出在这段代码中,其中包含给定的名称数组
string[] names = {"Mr. Albert", "Mr. Joshua", "Mr. Bernard", "Mr. Raphael"};
在这部分代码中,我很难理解
if(choices == 1){
Console.WriteLine("Congrats "+names[randNames]);
names[randNames] = " ";
for(int i=0; i < names.Length; i++){
Console.WriteLine(names[i]);
}
我在这里所做的是,每当我在这里抽取选中的数字时,都应该变成 " "
那个,或者只是让它看起来是空的,因为我抽了又抽了 3 次。我也尝试搜索这个问题,但没有成功。
结果将如下所示:
[1]Draw
[2]Exit
Enter action: 1
Congrats Mr. Albert
Mr. Joshua
Mr. Bernard
Mr. Raphael
[1]Draw
[2]Reset
[3]Exit
Enter action: 1
Congrats Mr. Joshua
Mr. Albert
Mr. Bernard
Mr. Raphael
[1]Draw
[2]Reset
[3]Exit
Enter action:
您可以在结果中看到它们不存在,但在下一次抽奖中它们仍然存在。 希望有人能帮助我,提前感谢您的帮助。
在 while 循环之前声明数组:
string[] names = {"Mr. Albert", "Mr. Joshua", "Mr. Bernard", "Mr. Raphael"};
while (isTrue)
{
//do your stuff
}
现在,您编辑数组并在下一次迭代中声明新数组,该数组未被编辑。