我如何循环通过变量并给每个变量分配一个随机字母?
不必做的:
var1 = RandomLetter();
var2 = RandomLetter();
var3 = RandomLetter();
var4 = RandomLetter();
var5 = RandomLetter();这将产生所有具有相同字母的人:
var1 = var2 = var3 = RandomLetter();我正在寻找一种缩短过程的方法,我需要对50+变量这样做。
起初,我认为是foreach循环,但它们是空的,并且不从要循环的集合中开始。
// 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];
}发布于 2017-12-07 15:46:44
您可以创建一个(不相关的)数字数组,然后将每个(无关的)数字转换为一个随机字符。
var randomLetterList = Enumerable.Range(0, 50)
.Select(x => RandomLetter())
.ToArray();Enumerable.Range(0, 50)这将返回50个数字的列表,从0:[ 0 , 1 , 2 , ... , 49 ]开始
.Select(x => RandomLetter())这会将列表中的每个元素变成一个随机字母(注意,这个数字的实际值从未被使用过):例如,[ 'b' , 'h' , 'm' , ... , 'o' ]。
这里需要注意的是,生成的列表将包含与初始列表中的数字一样多的。
.ToArray();这只是将IEnumerable<char>转换为char[]。这允许您通过使用它们的索引来访问这些字母。
而不是使用
var1var2var3var50相反,您可以使用:
randomLetterList[0]randomLetterList[1]randomLetterList[2]randomLetterList[49]发布于 2017-12-07 15:44:11
不要使用单独的变量,而是使用集合:
List<char> letters =
Enumerable.Range(1,50)
.Select(i => RandomLetter())
.ToList();https://stackoverflow.com/questions/47698602
复制相似问题