• C#定义数组1

    2019-03-28 09:27:04
    1.定义一维数组 int[] aqiArray=new int[]; 报错:[]索引内的数据有误;...2.数组创建必须定义数组大小或数组初始值设定项 string[] str =new string[3]; string[] str = { "410706", "410705", "410522" }...

    1.定义一维数组

       int[] aqiArray=new int[];

       报错:[]索引内的数据有误;应为1

                    数组创建必须有初始大小或数组初始值

    2.数组创建必须定义数组大小或数组初始值设定项

    string[] str =new string[3];

    string[] str =  { "410706", "410705", "410522" };

    展开全文
  • 下边内容是关于C#数组定义方法的内容,应该是对各位有所好处。 int[] ints = new int[100]; string[] strs=new string[20];

    下边内容是关于C#中数组的定义方法的内容,应该是对各位有所好处。
    int[] ints = new int[100];
    string[] strs=new string[20];

    展开全文
  • c#数组定义

    2007-01-07 22:03:00
    c#中结构数组怎么定义?怎么获取一个字符的ascii码?第3楼数组概述C# 数组从零开始建立索引,即数组索引从零开始。C#数组的工作方式与在大多数其他流行语言中的工作方式类似。但还有一些差异应引起注意。声明数组...
    c#中结构数组怎么定义?怎么获取一个字符的ascii码?

    第3楼
    
    数组概述
    
    C# 数组从零开始建立索引,即数组索引从零开始。C# 中数组的工作方式与在大多数其他流行语言中的工作方式类似。但还有一些差异应引起注意。
    
    
    
    声明数组时,方括号 ([]) 必须跟在类型后面,而不是标识符后面。在 C# 中,将方括号放在标识符后是不合法的语法。
    
    
    
    int[] table; // not int table[];  
    
    另一细节是,数组的大小不是其类型的一部分,而在 C 语言中它却是数组类型的一部分。这使您可以声明一个数组并向它分配 int 对象的任意数组,而不管数组长度如何。
    
    
    
    int[] numbers; // declare numbers as an int array of any size
    
    numbers = new int[10];  // numbers is a 10-element array
    
    numbers = new int[20];  // now it's a 20-element array
    
    声明数组
    
    C# 支持一维数组、多维数组(矩形数组)和数组的数组(交错的数组)。下面的示例展示如何声明不同类型的数组:
    
    
    
    一维数组:
    
    
    
    int[] numbers;
    
    多维数组:
    
    
    
    string[,] names;
    
    数组的数组(交错的):
    
    
    
    byte[][] scores;
    
    声明数组(如上所示)并不实际创建它们。在 C# 中,数组是对象(本教程稍后讨论),必须进行实例化。下面的示例展示如何创建数组:
    
    
    
    一维数组:
    
    
    
    int[] numbers = new int[5];
    
    多维数组:
    
    
    
    string[,] names = new string[5,4];
    
    数组的数组(交错的):
    
    
    
    byte[][] scores = new byte[5][];
    
    for (int x = 0; x < scores.Length; x++) 
    
    {
    
       scores[x] = new byte[4];
    
    }
    
    还可以有更大的数组。例如,可以有三维的矩形数组:
    
    
    
    int[,,] buttons = new int[4,5,3];
    
    甚至可以将矩形数组和交错数组混合使用。例如,下面的代码声明了类型为 int 的二维数组的三维数组的一维数组。
    
    
    
    int[][,,][,] numbers;
    
    示例
    
    下面是一个完整的 C# 程序,它声明并实例化上面所讨论的数组。
    
    
    
    // arrays.cs
    
    using System;
    
    class DeclareArraysSample
    
    {
    
        public static void Main()
    
        {
    
            // Single-dimensional array
    
            int[] numbers = new int[5];
    
    
    
            // Multidimensional array
    
            string[,] names = new string[5,4];
    
    
    
            // Array-of-arrays (jagged array)
    
            byte[][] scores = new byte[5][];
    
    
    
            // Create the jagged array
    
            for (int i = 0; i < scores.Length; i++)
    
            {
    
                scores[i] = new byte[i+3];
    
            }
    
    
    
            // Print length of each row
    
            for (int i = 0; i < scores.Length; i++)
    
            {
    
                Console.WriteLine("Length of row {0} is {1}", i, scores[i].Length);
    
            }
    
        }
    
    }
    
    输出
    
    Length of row 0 is 3
    
    Length of row 1 is 4
    
    Length of row 2 is 5
    
    Length of row 3 is 6
    
    Length of row 4 is 7
    
    初始化数组
    
    C# 通过将初始值括在大括号 ({}) 内为在声明时初始化数组提供了简单而直接了当的方法。特别要注意的是,如果声明时未初始化数组,则数组成员自动初始化为该数组类型的默认初始值。 
    
    
    
    下面的示例展示初始化不同类型的数组的各种方法。
    
    
    
    一维数组
    
    int[] numbers = new int[5] {1, 2, 3, 4, 5};
    
    string[] names = new string[3] {"Matt", "Joanne", "Robert"};
    
    可省略数组的大小,如下所示:
    
    
    
    int[] numbers = new int[] {1, 2, 3, 4, 5};
    
    string[] names = new string[] {"Matt", "Joanne", "Robert"};
    
    如果提供了初始值设定项,还可省略 new 语句,如下所示:
    
    
    
    int[] numbers = {1, 2, 3, 4, 5};
    
    string[] names = {"Matt", "Joanne", "Robert"};
    
    多维数组
    
    int[,] numbers = new int[3, 2] { {1, 2}, {3, 4}, {5, 6} };
    
    string[,] siblings = new string[2, 2] { {"Mike","Amy"}, {"Mary","Albert"} };
    
    可省略数组的大小,如下所示:
    
    
    
    int[,] numbers = new int[,] { {1, 2}, {3, 4}, {5, 6} };
    
    string[,] siblings = new string[,] { {"Mike","Amy"}, {"Mary","Ray"} };
    
    如果提供了初始值设定项,还可省略 new 语句,如下所示:
    
    
    
    int[,] numbers = { {1, 2}, {3, 4}, {5, 6} };
    
    string[,] siblings = { {"Mike", "Amy"}, {"Mary", "Albert"} };
    
    交错的数组(数组的数组)
    
    可以像下例所示那样初始化交错的数组:
    
    
    
    int[][] numbers = new int[2][] { new int[] {2,3,4}, new int[] {5,6,7,8,9} };
    
    可省略第一个数组的大小,如下所示:
    
    
    
    int[][] numbers = new int[][] { new int[] {2,3,4}, new int[] {5,6,7,8,9} };
    
    — 或 —
    
    
    
    int[][] numbers = { new int[] {2,3,4}, new int[] {5,6,7,8,9} };
    
    请注意,对于交错数组的元素没有初始化语法。 
    
    
    
    访问数组成员
    
    访问数组成员可以直接进行,类似于在 C/C++ 中访问数组成员。例如,下面的代码创建一个名为 numbers 的数组,然后向该数组的第五个元素赋以 5:
    
    
    
    int[] numbers = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0};
    
    numbers[4] = 5;
    
    下面的代码声明一个多维数组,并向位于 [1, 1] 的成员赋以 5:
    
    
    
    int[,] numbers = { {1, 2}, {3, 4}, {5, 6}, {7, 8}, {9, 10} };
    
    numbers[1, 1] = 5;
    
    下面声明一个一维交错数组,它包含两个元素。第一个元素是两个整数的数组,第二个元素是三个整数的数组:
    
    
    
    int[][] numbers = new int[][] { new int[] {1, 2}, new int[] {3, 4, 5}
    
    };
    
    下面的语句向第一个数组的第一个元素赋以 58,向第二个数组的第二个元素赋以 667:
    
    
    
    numbers[0][0] = 58;
    
    numbers[1][1] = 667;
    
    数组是对象
    
    在 C# 中,数组实际上是对象。System.Array 是所有数组类型的抽象基类型。可以使用 System.Array 具有的属性以及其他类成员。这种用法的一个示例是使用“长度”(Length) 属性获取数组的长度。下面的代码将 numbers 数组的长度(为 5)赋给名为 LengthOfNumbers 的变量:
    
    
    
    int[] numbers = {1, 2, 3, 4, 5};
    
    int LengthOfNumbers = numbers.Length;
    
    System.Array 类提供许多有用的其他方法/属性,如用于排序、搜索和复制数组的方法。
    
    
    
    对数组使用 foreach
    
    C# 还提供 foreach 语句。该语句提供一种简单、明了的方法来循环访问数组的元素。例如,下面的代码创建一个名为 numbers 的数组,并用 foreach 语句循环访问该数组:
    
    
    
    int[] numbers = {4, 5, 6, 1, 2, 3, -2, -1, 0};
    
    foreach (int i in numbers)
    
    {
    
       System.Console.WriteLine(i);
    
    }
    
    
    
    

    第4楼
    
    我要的是结构数组啊,就是struct类型的数组
    
    

    第5楼
    
    struct typename(名称)
    
    {
    
       public aaa;
    
    }
    
    typename[] testname = new typename[];
    
    
    
    

    第6楼
    
    下列代码示例使用 ASCIIEncoding.GetBytes 方法将 Unicode 字符串转换为字节数组。数组中每个字节表示字符串中该位置字母的 ASCII 值。
    
    
    
    [Visual Basic]
    
    Dim MyString As String = "Encoding String."
    
    Dim AE As New ASCIIEncoding()
    
    Dim ByteArray As Byte() = AE.GetBytes(MyString)
    
    Dim x as Integer
    
    For x = 0 To ByteArray.Length - 1
    
       Console.Write("{0} ", ByteArray(x))
    
    Next
    
    [C#]
    
    string MyString = "Encoding String.";
    
    ASCIIEncoding AE = new ASCIIEncoding();
    
    byte[] ByteArray = AE.GetBytes(MyString);
    
    for(int x = 0;x <= ByteArray.Length - 1; x++)
    
    {
    
       Console.Write("{0} ", ByteArray[x]);
    
    }
    
    此示例将下列内容显示到控制台。字节 69 是字符 E 的 ASCII 值,字节 110 是字符 n 的 ASCII 值,等等。
    
    
    
    69 110 99 111 100 105 110 103 32 83 116 114 105 110 103 46
    
    下列代码示例使用 ASCIIEncoding 类将前面的字节数组转换为字符数组。GetChars 方法用来解码字节数组。
    
    
    
    [Visual Basic]
    
    Dim AE As New ASCIIEncoding()
    
    Dim ByteArray As Byte() = { 69, 110, 99, 111, 100, 105, 110, 103, 32, 83, 116, 114, 105, 110, 103, 46 }
    
    Dim CharArray As Char() = AE.GetChars(ByteArray)
    
    Dim x As Integer
    
    For x = 0 To CharArray.Length - 1
    
       Console.Write(CharArray(x))
    
    Next
    
    [C#]
    
    ASCIIEncoding AE = new ASCIIEncoding();
    
    byte[] ByteArray = { 69, 110, 99, 111, 100, 105, 110, 103, 32, 83, 116, 114, 105, 110, 103, 46 };
    
    char[] CharArray = AE.GetChars(ByteArray);
    
    for(int x = 0;x <= CharArray.Length - 1; x++)
    
    {
    
       Console.Write(CharArray[x]);
    
    }
    
    以上代码将 Encoding String. 文本显示到控制台
    
     
    展开全文
  • C#中我们很多时候用System.Collections.Generic.List&lt;T&gt; 和 System.Collections.Generic.Dictionary&lt;TKey,TValue&gt; 更方便。但是,有时我们还是要用数组的。 用变量定义数组大小: /...

    C#中我们很多时候用System.Collections.Generic.List<T>  和 System.Collections.Generic.Dictionary<TKey,TValue> 更方便。但是,有时我们还是要用数组的。

    用变量定义数组大小:

    // 用变量定义数组大小
    int n = 10;
    int[] array1;
    array1 
    = new int[n];
    展开全文
  • C#定义动态数组

    C#代码中定义动态数组的时候,是很有讲究的。我们通常不知道我们需要多大空间,而且在数据之间的转化也是一个问题。


    问题一:


    GUID类型无法转换为GUID[]


    解答:


    我们尝试的时候一般用的是数组:


    <span style="font-size:18px;"> 
    Guid[] staff = new Guid[] { settingEvaluationBLL.LoadEnities(s => s.YzStaffEntityEvaluaterID.ID == EvaluationID).ToList().Select(u=>u.CriticsID).ToList().FirstOrDefault() };
    </span>

    我们都知道.FirstOrDefault(),返回序列中的第一个元素;如果序列中不包含任何元素,则返回默认值。因此它根本不是返回的数组。


    而实际上new Guid{字符串类型},而且这个字符串类型的是可以转换为GUID类型的。


    因此我们用了.ToArray<Guid>();是一个集合,集合的大小是可以变动的。


    正确的写法应该是:


    <span style="font-size:18px;">           
    List<Model.YzSettingEvaluationEntity> resultlist = settingEvaluationBLL.LoadEnities(s=>s.YzStaffEntityEvaluaterID.ID ==EvaluationID).ToList();
               
    Guid[] str = resultlist.Select(u => u.CriticsID).ToArray<Guid>();
    </span>

    问题二:如何得到任意类型的集合?


    <span style="font-size:18px;">            
    String[] score;
    Decimal[] scorevalue;
    score = scoreslist.Select(u => u.ScoreLevel).ToArray();
    scorevalue = scoreslist.Select(u => u.Scores).ToArray();</span>

    我们看到了,Arraylist默认初始容量为0.随着元素添加到ArrayList中,容量会根据需要通过重新分配自动增加。


    当然Arraylist有了如此好处,一定会有弊端的。它的弊端就是类型不安全,我们用它存放至类型的数据,比如int,string型等等,用ArrayList就意味著都需要将值类型装箱为Object对象,使用集合元素时,还需要执行拆箱操作,这就带来了很大的性能损耗。


    问题三:如何定义各种类型的泛型?


    泛型:


    <span style="font-size:18px;">        
    IList<String>SeriesNameSave = new List<String>();</span>

    如何给泛型装箱:


    还举个GUID类型的例子:


    <span style="font-size:18px;">	
    IList<GUID> SeriesIDSave = new List<GUID>();
    
    SeriesIDSave.Add(seriesBLL.LoadEnities(u => u.SeriesName == SeriesValue[i]).Select(u => u.ID).FirstOrDefault()); 
    </span>

    泛型在扩容的时候,用到的是Add。


    如果我们用泛型集合使用会更加方便,看同样是得到GUID类型:


    <span style="font-size:18px;">        
    SeriesValue = resultlist.Select(u => u.YzStaffEntityCriticsID.YzSeriesEntityID).ToArray<Guid>();
    </span>

    这样是不是一句话就可以解决了。


    总结:


    我们看看数组、集合、泛型之间的区别:


    集合可放任意类型的元素,会自动增大,取出时要做类型转换。


    泛型集合只能放定义类型的元素,会自动增大,取出时不用做类型转换。


    数组只能放定义类型的元素,不会自动增大,取出时不用做类型转换。



    展开全文
  • using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace linq {  class Program  {  static void Main(string[] args)  {  }
  • 一、一维: int[] numbers = new int[]{1,2,3,4,5,6}; //不定长 int[] numbers = new int[3]{1,2,3};//定长 二、多维 int[,] numbers = new int[,]{{1,2,3},{1,2,3}};...int[,] numbers = new int[2,2]{{1,2},{...
  • C#交错数组浅析

    2012-04-09 22:35:10
    C#数组有很多值得学习的地方,这里我们主要介绍C#交错数组,包括介绍一维数组例、二维数组例、C#交错数组等方面。...数组中的元素值可以在定义数组时赋予,也可以在定义数组后对单个元素进行赋值。 一维数组例
  • c# 定义动态数组方法

    2013-11-12 14:17:56
    c# 定义动态数组方法:  private Vector3 []a ; //保存点的位置 private float []v ;//保存从数据库中读取的float数值 在初始化函数start中定义如下:  num=20; a = new Vector3 [num]; v = new float...
  • 数组 数组是一个存储相同类型元素的固定大小的有顺序的集合。数组是用来存储数据的集合,通常认为数组是一个同一类型变量的集合。 数组也是一种数据类型,数组是引用类型 1.1数组的类型 一维数组 二维...
  • 但在每个对象中,往往又包含多个相同性质的属性,此时我们再在该类中定义数组。注意, 自定大类Agent.cs代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; ...
  • C#数组,ArrayList,List都能够存储一组对象,那么这三者到底有什么样的区别呢。 数组  数组C#中最早出现的。在内存中是连续存储的,所以它的索引速度非常快,而且赋值与修改元素也很简单。 //数组 string...
  • C# 常用数组集合

    2019-07-21 11:22:04
    1.定义数组 并赋值 int[] Qpum = { 1, 2, 3 }; 多维数 string[,] name={{"j","k"},{"a","s"}}; 数组的取值通过索引取值Qpnum[1] 2. 集合 常用方法 Add() Remove() ArrayList A = new ArrayList(); //...
  • c#定义多维数组

    2020-04-06 09:53:28
    仅作为博客记录,大佬请跳过。...c#定义double型单维数组: double[] output = new double[] {1, 2, 4 }; 若想变为double型多维数组——double[,]: double[,] output = new double[,] { { 1, 2, 4 } }; 即可 ...
  • C#中数据类型有很多,当你的程序放不同类型的时候,需要一个一个去定义,而集合就是解决这个问题,并且不规定放的数量 集合中添加数据的方法 ArrayList arrayList = new ArrayList();//实例化集合 通过Add()...
  • C# 数组定义

    2018-03-17 13:31:07
    C#数组特性:1、数组的长度是固定2、是同一个类型的数据3、根据索引index来查找,第一个0开始数据分为 一维数组、二位数组数组数组一维数组:int[] number =new int[5];//表示定义一个长度为5 的一维数组赋值...
  • 定义一个带有数组的类 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 public class MyIntArray {  private int[] a;    public ...
  • c#数组赋值方法

    2011-08-26 10:08:49
    C#数组复制有多种方法 数组间的复制,int[] pins = {9,3,4,9};int [] alias = pins;这里出了错误,也是错误的根源,以上代码并没有出错,但是根本不是复制,因为pins和alias都是引用,存在于堆栈中,而数据9,3,4,...
  • C# 数组从零开始建立索引,即数组索引从零开始。C#数组的工作方式与在大多数其他流行语言中的工作方式类似。但还有一些差异应引起注意。 声明数组时,方括号 ([]) 必须跟在类型后面,而不是标识符后面。在 C# 中...
  • 1C#如何定义和使用多维数组 不建议使用ArrayList,当数组里的元素是值类型在操作的时候会出现大量的装箱与拆箱步骤性能会损失许多,而是应该用什么类型的元素创建什么类型的数组,除非你的元素有交叉或不确定才考虑...
1 2 3 4 5 ... 20
收藏数 96,816
精华内容 38,726