C#中的List、二维数组和DataGridView

二维数组必须提前定义好大小,并且定义之后不能更改。一开始用二维数组存储一些坐标,但坐标数是不定的,所以每次用这个数组的时候都要去除空白,而去除空白只能用新建二维数组来实现。

二维数组无法按行或列截取数据,只能用循环一个个元素读取。

List当一维数组很方便,有很多强大的方法使用,但是作为List<List<T>>这样的二维数组使用的时候,就只能拆分开来使用。赋值的时候要特别注意,别用同一个List<T>给行赋值,要不然所有行数据都一样。List是引用类型,传递的是引用地址,所以二维List赋值时要用不同的List<T>

二维数组给二维List 赋值应该用下面这样的方式:

    double[,] ROIs = new double[200,4] ;
    List< List<double>> roiList=new List<List<double>>();           
    
    for (int ii = 0; ii <ROIs.Length/ 4; ii++)
    {
          //这个定义不能放在for循环外,要不然数据都会变成最后一行
          List<double> arrlist = new List<double>();
          for (int i = 0; i < 4; i++)
          {
               if (ROIs[ii, 0] != 0)
               {
                    arrlist.Add(ROIs[ii, i]);
               }
               else
                    break;
          }
          if (ROIs[ii, 0] != 0)
          {
               roiList.Add(arrlist);
          }
          else
               break;
    }

DataGridView的赋值也比想象中麻烦,我觉得既然是表格,就应该直接把二维数组作为数据源就可以显示,但找了一晚上也没找到这种方法。用二维List也不行,都要先建立DataTable类型,把值一个个传进去,然后再把新建的DataTable赋值给表格的DataSourse

 //List<List<double>> roi 二维List
 DataTable dt = new DataTable();

 //手动创建列
 dt.Columns.Add("1", typeof(double));
 dt.Columns.Add("2", typeof(double));
 dt.Columns.Add("3", typeof(double));
 dt.Columns.Add("4", typeof(double));
 for (int ii = 0; ii < roi.Count; ii++)
 {
     DataRow dr = dt.NewRow() ;
     for (int i = 0; i < row; i++)
     {
         dr[i]= roi[ii][i];
     }
     dt.Rows.Add(dr);
 }
 gridView.DataSource = null;
 gridView.DataSource = dt;

 放两个链接便于后期查询:DataGridView用法介绍icon-default.png?t=M0H8https://www.cnblogs.com/lcbiao/articles/2510669.html

List用法介绍icon-default.png?t=M0H8https://www.cnblogs.com/dyhao/p/9501479.html二维数组就是循环赋值取值,没太多特别的功能,就不放另外的链接了。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
二维数组可以用来存储DataGridView的数据。你可以先创建一个二维数组,然后使用循环将数据逐个赋值给数组的元素。接下来,你可以将二维数组转换为DataTable,并将其作为DataGridView的数据源。 以下是一个示例代码: ```csharp double\[,\] data = new double\[rows, columns\]; // 假设rows和columns分别表示行数和列数 // 将数据逐个赋值给二维数组 for (int i = 0; i < rows; i++) { for (int j = 0; j < columns; j++) { data\[i, j\] = yourData\[i\]\[j\]; // yourData是一个包含数据的二维List } } // 创建DataTable并添加列 DataTable dt = new DataTable(); for (int j = 0; j < columns; j++) { dt.Columns.Add((j + 1).ToString(), typeof(double)); } // 将二维数组的数据添加到DataTable for (int i = 0; i < rows; i++) { DataRow dr = dt.NewRow(); for (int j = 0; j < columns; j++) { dr\[j\] = data\[i, j\]; } dt.Rows.Add(dr); } // 将DataTable设置为DataGridView的数据源 dataGridView.DataSource = dt; ``` 这样,你就可以使用二维数组存储并显示在DataGridView了。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* *3* [C#List二维数组DataGridView](https://blog.csdn.net/baidu_41749280/article/details/122584840)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不知今夕何夕

重赏之下必有勇夫

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值