我想在 C# 的函数中打印一个随机数组(如果它不在函数中也可以)。我能怎么做? [关闭]
Posted
技术标签:
【中文标题】我想在 C# 的函数中打印一个随机数组(如果它不在函数中也可以)。我能怎么做? [关闭]【英文标题】:I want to print a random array in a function (It is also ok if it is not in function) in C#. How can I do? [closed] 【发布时间】:2021-03-19 05:54:15 【问题描述】:静态空数组()
//1dimensional
string[] a = new string[4];
string[] one_one = "X" ;
string[] one_two = "X", "X" ;
string[] one_three = "X", "X", "X" ;
////2dimensional
string[,] one_four = "X", "X" , "X", "X" ;
string[,] two_two = "X" , "X" ;
string[,] two_three = "X" , "X" , "X" ;
在那里我想使用随机命令打印随机数组。 我是使用函数的新手,所以我没有太多想法 如果没有“功能”也可以解决它,如果您能提供帮助,我会很高兴,谢谢
【问题讨论】:
解释你打算如何使用“随机数组”。我们是否在选择中混合了一维和二维数组。给我们一个你可能期望的“输出”的例子...... 您的意思是要随机选择代码中显示的数组之一,并打印其内容?或者你的意思是你想生成一个内容是随机的数组?目前还不清楚。也不清楚你被困在哪里。你知道如何在 C# 中生成随机数吗(如果不知道,google 一下很容易)? 对不起,我是新来的。是的,我想混合一维和二维数组,我的示例输出类似于 XX 这没有回答我提出的问题。 是的,我知道如何生成随机数,我想随机选择代码中显示的数组之一,并打印其内容 【参考方案1】:如果我们只处理一维数组,那么您可以制作一个数组数组供您选择,然后使用String.Join()
制作您的输出字符串:
Random R = new Random();
string[][] arrays = a, one_one, one_two, one_three ;
var arr = arrays[R.Next(arrays.Length)];
String output = String.Join("", arr);
Console.WriteLine(output);
你可以只用二维数组做类似的事情,但你需要一个循环将“行”放在一个字符串中。
将 1D 和 2D 混合到一个选择中会使它变得更加棘手。这是可能的(见下文),但我确实不建议这样做,因为这是一个糟糕的设计:
static void Main(string[] args)
// One-dimensional
string[] a = new string[4];
string[] one_one = "X" ;
string[] one_two = "X", "X" ;
string[] one_three = "X", "X", "X" ;
// Two-dimensional
string[,] one_four = "X", "X" , "X", "X" ;
string[,] two_two = "X" , "X" ;
string[,] two_three = "X" , "X" , "X" ;
Random R = new Random();
Object[] arrays = a, one_one, one_two, one_three, one_four, two_two, two_three ;
var arr = arrays[R.Next(arrays.Length)];
string output = "";
switch (((Array)arr).Rank)
case 1:
output = String.Join("", (String[])arr);
break;
case 2:
string[,] arr2D = (string[,])arr;
for(int r=0; r<=arr2D.GetUpperBound(0); r++)
for (int c = 0; c<=arr2D.GetUpperBound(1); c++)
output = output + arr2D[r, c];
if (r<arr2D.GetUpperBound(0))
output = output + Environment.NewLine;
break;
Console.WriteLine(output);
Console.Write("Press Enter to Quit");
Console.ReadLine();
【讨论】:
我也不想混合 1d 和 2d,但我必须做一个俄罗斯方块风格的项目,我想不出还有什么,谢谢。 @Idle_Mind以上是关于我想在 C# 的函数中打印一个随机数组(如果它不在函数中也可以)。我能怎么做? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章