将VS.Net 2005 DataGridView控件的数据导出到二维数组

///
///  将VS.Net 2005 DataGridView控件的数据导出到二维数组。
///
///  VS.Net 2005 DataGridView控件。
///  是否要把列标题文本也导到数组中。
///   <作者> 长江支流
///   <日期>
public   string [,] ToStringArray(DataGridView dataGridView,  bool  includeColumnText)
{
    
#region  实现
    
string [,] arrReturn  =   null ;
    
int  rowsCount  =  dataGridView.Rows.Count;
    
int  colsCount  =  dataGridView.Columns.Count;
    
if  (rowsCount  >   0 )
    {
        
// 最后一行是供输入的行时,不用读数据。
         if  (dataGridView.Rows[rowsCount  -   1 ].IsNewRow)
        {
            rowsCount
-- ;
        }
    }

    
int  i  =   0 ;
    
// 包括列标题
     if  (includeColumnText)
    {
        rowsCount
++ ;
        arrReturn 
=   new   string [rowsCount, colsCount];
        
for  (i  =   0 ; i  <  colsCount; i ++ )
        {
            arrReturn[
0 , i]  =  dataGridView.Columns[i].HeaderText;
        }
        i 
=   1 ;
    }
    
else
    {
        arrReturn 
=   new   string [rowsCount, colsCount];
    }

    
// 读取单元格数据
     int  rowIndex  =   0 ;
    
for  (; i  <  rowsCount; i ++ , rowIndex ++ )
    {
        
for  ( int  j  =   0 ; j  <  colsCount; j ++ )
        {
            arrReturn[i, j] 
=  dataGridView.Rows[rowIndex].Cells[j].Value.ToString();
        }
    }
    
return  arrReturn;
    
#endregion  实现
}

// 对两维数组的重新学习
// 二维数组转换成一维数组(C#版本)
using  System;
namespace  ConsoleApplication1
{
    
class  Program
    {
        
private   static   void  TwoarrTrancteOnearr( int  m, int  n)
        {
            
int [,] arr2;
            
int [] arr1;
            arr2 
=   new   int [m, n];
            arr1 
=   new   int [m * n];
          
            Console.WriteLine(
" output value of arr2: " );
            
for  ( int  i  =   0 ; i  <  m;  ++ i)
            {
                
for  ( int  j  =   0 ; j  <  n;  ++ j)
                {
                    arr2[i, j] 
=  i  *  n  +  j;
                    Console.Write(
" {0}  " ,arr2[i, j]);
                }
                Console.WriteLine();
            }

           Console.WriteLine(
" Output value of arr1: " );       
            
for ( int  i = 0 ;i < m * n; ++ i)
            {
                
int  r  =  i  /  n;
                
int  c  =  i  %  n;
                arr1[i] 
=  arr2[r, c];
                Console.Write(
" {0}  " ,   arr1[i]);
            }
            Console.WriteLine();
            Console.WriteLine(
" Press <enter> key exit! " );
            Console.ReadLine();
        }
        
static   void  Main( string [] args)
        {
            TwoarrTrancteOnearr(
4 3 );
        }
    }
}

string [][] fn = new   string [ 2 ][];

fn[
0 ] = new   string []{ 2 , 3 }
fn[
1 ] = new   string []{ 4 , 5 }


你可能感兴趣的:(datagridview)