我需要随机生成一个4位字符串并通过Linq设置为一个属性。
现在是硬编码:
// TODO: hardcode bit string
employees = employees.Select(x => { x.Options = "0101"; return x; }).ToList();
我需要选项是随机的,所以我可以得到所有4位可能的值:" 0001"," 0010"," 0011"等等。
我正在考虑使用随机0
到1
变量并生成值4次并连接字符串。
关于如何实现这一点的任何线索?
答案 0 :(得分:1)
如果速度很关键,例如在循环中调用此操作,则使用包含所有可能值的16个元素字符串数组并随机选择元素会更有效。
答案 1 :(得分:0)
您可以使用此
Convert.ToString(int, 2);
这会将int转换为base 2 string
。
其中int
是一个不包括16的随机数。
答案 2 :(得分:0)
var rand = new Random();
Convert.ToString(rand.Next(16), 2).PadLeft(4, '0')
说明:
第一行创建一个随机对象,这里没什么难以理解的......第二行首先生成0到15之间的随机数(rand.Next(16)
)。然后它将随机数放入Convert.ToString
。该方法将数字转换为基数2(因为第二个参数是2)。但是,这还不够,因为如果随机数可以用3位或更少的数字表示,则返回的字符串将不具有前导0。这就是我使用PadLeft
添加它们的原因。