Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.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语言中将元素转换为一个变量#_C#_Arrays - Fatal编程技术网

C# 如何设置所有数组';在C语言中将元素转换为一个变量#

C# 如何设置所有数组';在C语言中将元素转换为一个变量#,c#,arrays,C#,Arrays,例如,我有一个数组 int[] array = {1,0,0,1,0} 一个int变量=0 我想把所有数组的元素都设置为变量。我该怎么做 variable=10010 此外,如果我们想扭转这种局面?变量的值设置为数组 int something=10000 to int[] something={1,0,0,0,0} 感谢您的所有贡献/==========================================继续=================== //===

例如,我有一个数组

int[] array = {1,0,0,1,0} 
一个
int变量=0

我想把所有数组的元素都设置为变量。我该怎么做

variable=10010
此外,如果我们想扭转这种局面?变量的值设置为数组

int something=10000 to int[] something={1,0,0,0,0}
感谢您的所有贡献

/==========================================继续===================
        //==============go forwards===================
        int[] array = { 1, 0, 0, 1, 0 };
        int variable = 0;
        for (int i = 0; i < array.Length; ++i)
        {
            //first element
            if (i == 0)
                variable = array[i];
            else
            {
                variable *= 10;
                variable += array[i];
            }
        }

        //print resualts 
        Console.WriteLine(variable);




        //===================go backwards===============
        int variable2 = 10010;

        //convert it into a char array
        string value = variable2+"";

        //set the array length based on the size
        int[] reverse = new int[value.Length];

        //loop
        for (int i = 0; i < value.Length; ++i)
        {
            //grab the number from a char value and push it into the array
            reverse[i] = (int)Char.GetNumericValue(value[i]);
        }

        //print out
        for(int i = 0; i <reverse.Length;++i)
        {
            Console.WriteLine("[" + i + "] = " + reverse[i]);
        }
int[]数组={1,0,0,1,0}; int变量=0; for(int i=0;i对于(int i=0;i我在这里打电话,请耐心听我说,但是如果性能不是问题,那么像这样的事情怎么样:

int.Parse(string.Join(string.Empty, array.Select(d => d.ToString()));

显然,在解析溢出、无效字符等时,您需要一些错误处理。

这是另一种方法,但没有其他方法那么紧凑。这种方法演示了从0和1的数组构造int的逐位操作

class Program
{     
    // converts array of 0's and 1's to an int, and assumes big endian format.
    static int bitArrayToInt(int[] bit_array)
    {
        int rc = 0;
        for (int i = 0; i < bit_array.Length; i++)
        {
            rc <<= 1; // bit shift left
            rc |= bit_array[i]; // set LSB according to arr[i]. 
        }
        return rc;
    }        

    static void Main(string[] args)
    {
        int[] array = { 1, 0, 0, 1, 0 };
        int rc = bitArrayToInt(array);

        System.Console.WriteLine("{0} = {1} binary",rc, Convert.ToString(rc, 2));
        System.Console.ReadLine();   
    }
}
类程序
{     
//将0和1的数组转换为int,并采用big-endian格式。
静态int位数组int(int[]位数组)
{
int rc=0;
对于(int i=0;irc我能想到的最短最快的方法

        byte[] array = { 1, 0, 1, 0, 0 };
        string temp = "";
        int result = 0;

        for (int i = 0; i < array.Length; i++)
            temp += array[i].ToString();

        result = Convert.ToInt32(temp);
byte[]数组={1,0,1,0,0};
字符串temp=“”;
int结果=0;
for(int i=0;i
Hi,你的数组将始终是“位”?而你的变量将始终是字符串?不总是位,它可以是任何值。我只是尝试将数组的所有值设置为变量,数组和变量可以是int,string等…它可以工作!我试着这样做似乎很接近你的哈哈,int[]数组={1,2,3,4,5};int variable;for(int i=0;iGlad)您找到了适合需要的东西。但是对于反向版本,它非常有用,非常感谢!您不需要首先使用if/else。如果
i
=0,则
variable
=0,并且执行
variable*=10;
根本不会更改值。