首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >给每个变量赋值随机字母

问给每个变量赋值随机字母
EN

Stack Overflow用户
提问于 2017-12-07 15:38:24
回答 2查看 166关注 0票数 0

我如何循环通过变量并给每个变量分配一个随机字母?

不必做的:

代码语言:javascript
复制
var1 = RandomLetter();
var2 = RandomLetter();
var3 = RandomLetter();
var4 = RandomLetter();
var5 = RandomLetter();

这将产生所有具有相同字母的人:

代码语言:javascript
复制
var1 = var2 = var3 = RandomLetter();

我正在寻找一种缩短过程的方法,我需要对50+变量这样做。

起初,我认为是foreach循环,但它们是空的,并且不从要循环的集合中开始。

代码语言:javascript
复制
// 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];
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-07 15:46:44

您可以创建一个(不相关的)数字数组,然后将每个(无关的)数字转换为一个随机字符。

代码语言:javascript
复制
var randomLetterList = Enumerable.Range(0, 50)
                            .Select(x => RandomLetter())
                            .ToArray();
代码语言:javascript
复制
Enumerable.Range(0, 50)

这将返回50个数字的列表,从0:[ 0 , 1 , 2 , ... , 49 ]开始

代码语言:javascript
复制
.Select(x => RandomLetter())

这会将列表中的每个元素变成一个随机字母(注意,这个数字的实际值从未被使用过):例如,[ 'b' , 'h' , 'm' , ... , 'o' ]。

这里需要注意的是,生成的列表将包含与初始列表中的数字一样多的。

代码语言:javascript
复制
.ToArray();

这只是将IEnumerable<char>转换为char[]。这允许您通过使用它们的索引来访问这些字母。

而不是使用

  • var1
  • var2
  • var3
  • ..。
  • var50

相反,您可以使用:

  • randomLetterList[0]
  • randomLetterList[1]
  • randomLetterList[2]
  • ..。
  • randomLetterList[49]
票数 1
EN

Stack Overflow用户

发布于 2017-12-07 15:44:11

不要使用单独的变量,而是使用集合:

代码语言:javascript
复制
List<char> letters = 
    Enumerable.Range(1,50)
              .Select(i => RandomLetter())
              .ToList();
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47698602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档