[英]Assign random letter to each variable
如何遍历变量并为每个变量分配一个随机字母?
无需做:
var1 = RandomLetter();
var2 = RandomLetter();
var3 = RandomLetter();
var4 = RandomLetter();
var5 = RandomLetter();
这将产生所有具有相同字母的字母:
var1 = var2 = var3 = RandomLetter();
我正在寻找一种缩短流程的方法,我需要对50多个变量进行处理。
起初,我虽然是一个foreach循环,但它们为null,并且不会从要循环的集合开始。
// Variables
public static char var1, var2, var3, var4, var5;
// Generate Random Letter
public static Random random = new Random();
public static char RandomLetter()
{
const string text = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int index = random.Next(text.Length);
return text[index];
}
不要使用单独的变量,而应使用集合:
List<char> letters =
Enumerable.Range(1,50)
.Select(i => RandomLetter())
.ToList();
您可以创建一个(不相关的)数字数组,然后将每个(不相关的)数字转换为随机字符。
var randomLetterList = Enumerable.Range(0, 50)
.Select(x => RandomLetter())
.ToArray();
Enumerable.Range(0, 50)
这将返回从0开始的50个数字的列表: [ 0 , 1 , 2 , ... , 49 ]
.Select(x => RandomLetter())
这会将列表中的每个元素变成一个随机字母(注意,永远不会使用数字的实际值 ):例如[ 'b' , 'h' , 'm' , ... , 'o' ]
。
这里要注意的重要一点是,结果列表将包含一样多的字母,如初始列表有编号。
.ToArray();
这只是将IEnumerable<char>
转换为char[]
。 这使您可以通过使用字母索引来访问字母。
而不是使用
var1
var2
var3
var50
您改为使用:
randomLetterList[0]
randomLetterList[1]
randomLetterList[2]
randomLetterList[49]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.