C#——数组(批量数据处理)

数组概述

数组是具有相同数据类型的一组数据的集合。

数组中的每一个变量称为数组的元素,数组能够容纳元素的数量称为数组的长度。数组中的每个元素都有具有唯一的引索与其相对应,数组从零开始。

一个数组的定义需要包含一下几个元素:

  • 元素类型
  • 数组的维数
  • 每个维数的上下限
    例如
int [] a = new int[80];

一维数组

一维数组的创建
先声明再用new关键字进行内存分配

声明的一维数组使用以下形式

数组元素类型[] 数组名字;

例如

int [] arr ;

声明数组后还不能访问它的任何元素,因为声明数组只是给出了数组名字和元素的数据类型,想要真正使用数组还要为它分配内存空间,在为数组分配内存空间的同时,必须指明数组的长度。为数组分配内存空间的语法格式如下

数组名字 = new 数组元素类型[数组元素的个数] ; 

例如

arr= new int [5];

注意:索引从0开始

声明的同时为数组分配内存

语法如下

数组元素类型[] 数组名= new 数组元素类型[数组元素的个数];
二维数组

声明如下

type[,]arrayName ;
type[][] arrayName ;

type : 二维数组的数据类型
arrayName:二维数组的名字

1.直接为每一维分配内存空间
例如

int [,] = new int [2,4] ;

创建一个int类型的二维数组a ,二维数组a中包括两个长度为4的一维数组

2.分别为每一个维分配空间

int [] [] a = new int [2][];
a [0] = new int [2] ;
a[1] = new int [3] ;
二位数组的初始化

1.为单个二维数组元素赋值
例如

int[,] myarr = new int [2,2];
myarr[0,0] = 0 ;
myarr[0,1] = 1 ;
myarr[1,0] = 1 ;
myarr[1,1] = 2 ;

2.为每一个维数组元素赋值
首先需要使用“数组类型[] [] ”形式声明一个数组,并指顶数组的行数,然后再分别为每一维数组赋值

例如

int [] [] myarr  = new int [2] [] ;//定义了一个名为myarr的数组,有两行

myarr[0] = new int []{0,1 };//初始化第一行
myarr[1] = new int [] {1,2};//初始化二维数组的行 

3.同时为整个二维数组赋值
例如

int [,] myarr = new int [2,2]{{0,1},{1,2}};

或者

int [,] myarr = new int [,]{{0,1},{1,2}};

或者

 int [,] myarr = {{0,1},{1,2}};
数组与Array类

C#中的数组是由System.Array类派生而来的引用对象,可以使用Array类中的各种属性或者方法对数组进行各种操作。

例如:可以使用Array类的Length属性来获取数组元素的长度,可以使用Rank属性获取数组的维数

Array 类的常用方法以及说明

方法说明
Copy将数组中的指定元素复制到另一个Array中
CopyTo从指定目标的数组索引出开始,将当前一维数组中的所有普元素复制到另一个一维数组中
Exists判断数组中是否包含指定的元素
GetLength获取Array的指定维中元素数
GetLowerBound获取Array中的指定维度的下限
GetUpperBound获取Array中的指定维度的上限
GetValue获取Array中指定的值
Reverse反转一维中Array中元素的顺序
SetValue设置Array中指定位置的元素
Sort对一位Array 数组元素进行排序

以打印杨辉三角为例

            int[][] Array_int = new int[10][];
            for (int i = 0; i < Array_int.Length; i++)
            {
                Array_int[i] = new int[i + 1];
                for(int j = 0; j < Array_int[i].Length; j++)
                {
                    if (i <= 1)
                    {
                        Array_int[i][j] = 1;
                        continue;
                    }
                    else
                    {
                        if (j == 0 || j == Array_int[i].Length - 1)//如果是行首或者行尾 
                        {
                            Array_int[i][j] = 1;
                        }
                        else//否则根据杨辉算法进行运算
                        {
                            Array_int[i][j] = Array_int[i - 1][j - 1] + Array_int[i - 1][j];

                        }
                    }
                }
            }
            for(int i = 0; i <= Array_int.Length - 1; i++)
            {
                for (int k = 0; k <= Array_int.Length - i; k++)
                {
                    Console.Write(" ");
                }
                for(int j = 0; j < Array_int[i].Length; j++)
                {
                    Console.Write("{0}  ", Array_int[i][j]);
                }
                Console.WriteLine();
            }
            Console.ReadLine();
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是C#批量处理数据的方法: 1. 使用SqlBulkCopy类进行批量插入数据到SQL Server数据库中。 ```csharp using System.Data.SqlClient; // 假设有一个DataTable对象dt,包含要插入的数据 using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connection)) { bulkCopy.DestinationTableName = "dbo.MyTable"; bulkCopy.WriteToServer(dt); } } ``` 2. 使用OracleBulkCopy类进行批量插入数据到Oracle数据库中。 ```csharp using Oracle.ManagedDataAccess.Client; // 假设有一个DataTable对象dt,包含要插入的数据 using (OracleConnection connection = new OracleConnection(connectionString)) { connection.Open(); using (OracleBulkCopy bulkCopy = new OracleBulkCopy(connection)) { bulkCopy.DestinationTableName = "MyTable"; bulkCopy.WriteToServer(dt); } } ``` 3. 使用SQLiteBulkCopy类进行批量插入数据到SQLite数据库中。 ```csharp using System.Data.SQLite; // 假设有一个DataTable对象dt,包含要插入的数据 using (SQLiteConnection connection = new SQLiteConnection(connectionString)) { connection.Open(); using (SQLiteBulkCopy bulkCopy = new SQLiteBulkCopy(connection)) { bulkCopy.DestinationTableName = "MyTable"; bulkCopy.WriteToServer(dt); } } ``` 4. 使用MySqlBulkCopy类进行批量插入数据到MySQL数据库中。 ```csharp using MySql.Data.MySqlClient; // 假设有一个DataTable对象dt,含要插入的数据 using (MySqlConnection connection = new MySqlConnection(connectionString)) { connection.Open(); using (MySqlBulkCopy bulkCopy = new MySqlBulkCopy(connection)) { bulkCopy.DestinationTableName = "MyTable"; bulkCopy.WriteToServer(dt); } } ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值