C# 将二维数组转换为字节数组

C# 将二维数组转换为字节数组,c#,arrays,C#,Arrays,我有一个系统,它由两个使用C#中Winforms的应用程序组成。第一个应用程序具有购物车表单,其中包含显示产品信息的Gridview。目的是通过无线将此Gridview的内容发送到第二个应用程序中的另一个Gridview。我搜索了一下,发现我需要实现TCP套接字编程(异步)方法,并且实现成功。但是,我发现的教程与发送对象有关,我想发送Gridview生成的2D数组。我计划遵循以下算法 在Gridview中检索产品信息 将数据从Gridview读取到二维数组“整型” 将2D数组转换为字节[],或使

我有一个系统,它由两个使用C#中Winforms的应用程序组成。第一个应用程序具有购物车表单,其中包含显示产品信息的Gridview。目的是通过无线将此Gridview的内容发送到第二个应用程序中的另一个Gridview。我搜索了一下,发现我需要实现TCP套接字编程(异步)方法,并且实现成功。但是,我发现的教程与发送对象有关,我想发送Gridview生成的2D数组。我计划遵循以下算法

  • 在Gridview中检索产品信息
  • 将数据从Gridview读取到二维数组“整型”
  • 将2D数组转换为字节[],或使用Buffer.BlockCopy方法通过网络传输
  • 接收字节数组
  • 将其转换为二维数组并填充Gridview
  • 注;我想发送未包含在Gridview中的传输中的客户ID,我将从公共类获取它 这是我的密码

     var select = "SELECT Pro_ID, Price, Category_ID FROM Products where Empl_ID = 1";
                var c = new SqlConnection(); 
                var dataAdapter = new SqlDataAdapter(select, c);
    
                var commandBuilder = new SqlCommandBuilder(dataAdapter);
                var ds = new DataSet();
                dataAdapter.Fill(ds);
                dataGridView.DataSource = ds.Tables[0];
                dataGridView.Columns[0].HeaderText = "Items";
                dataGridView.Columns[1].HeaderText = "Price";
                dataGridView.Columns[2].HeaderText = "Quantity";
    
                // reading data from gridview into 2D array
                string[,] DataValue = new string[dataGridView.Rows.Count, dataGridView.Columns.Count];
    
                foreach (DataGridViewRow row in dataGridView.Rows)
                {
                    foreach (DataGridViewColumn col in dataGridView.Columns)
                    {
                        DataValue[row.Index, col.Index] = dataGridView.Rows[row.Index].Cells[col.Index].Value.ToString();
                    }
    
                }
    
    我能够实施第一点和第二点,但其余的,我需要一些指导来实施

    在C#中,一切都是对象。您可以将2D数组强制转换为对象,将其发送,然后简单地将其强制转换回字节[,]

    byte[,] localByteArray = new byte[someDimension,someOtherDimension];
    object transmission = localByteArray;
    //transmit
    
    //reception scope, receives "transmission"
    byte[,] decode = (byte[,])transmission;
    //use decode as 2D array