Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C“随机生成位字符串”;0001"&引用;1010“;,等_C#_Linq - Fatal编程技术网

C# C“随机生成位字符串”;0001"&引用;1010“;,等

C# C“随机生成位字符串”;0001"&引用;1010“;,等,c#,linq,C#,Linq,我需要随机生成一个4位字符串,并通过Linq设置为属性 现在是硬编码的: // TODO: hardcode bit string employees = employees.Select(x => { x.Options = "0101"; return x; }).ToList(); 我需要的选项是随机的,这样我就可以得到所有4位的可能值:“0001”、“0010”、“0011”等等 我正在考虑使用一个随机0到1变量,生成4次值并连接字符串 关于如何实

我需要随机生成一个4位字符串,并通过Linq设置为属性

现在是硬编码的:

        // TODO: hardcode bit string
        employees = employees.Select(x => { x.Options = "0101"; return x; }).ToList();
我需要的选项是随机的,这样我就可以得到所有4位的可能值:“0001”、“0010”、“0011”等等

我正在考虑使用一个随机
0
1
变量,生成4次值并连接字符串

关于如何实现这一点有什么线索吗

你可以用这个

Convert.ToString(int, 2);
这将把整数转换为基数2
字符串

其中,
int
是不包括16的随机数

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来添加它们。

如果速度很关键,例如在循环中调用此操作,则使用包含所有可能值的16个元素字符串数组并随机选择元素会更有效。

您已经说过如何做到这一点,你对它的哪一部分有问题?为什么不先试试你的想法,然后再问呢?只需生成一个随机整数,并使用它的前四位。你的想法很好。请注意,由于您所做的只是设置一个现有的对象属性,所以代码中没有真正的LINQ(实际上它是LINQ反用法)