当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C# Array用法及代码示例


Array 类提供了创建、操作、搜索和排序数组的方法。 Array 类不属于System.Collections命名空间,但它仍然被视为一个集合,因为它基于列表接口。 Array 类是支持数组的语言实现的基类。

数组类的特点:

  • 在数组中,元素是数组的值,数组的长度是数组中存在的项目总数。
  • 数组的下界是其第一个元素的索引,下界的默认值为 0。
  • 数组的默认大小是2GB.
  • 具有相同数组类型的数组对象共享相同的 Type 对象。

例子:

C#


// C# program to creating an array
// of the string as coffee name, store
// coffee name in the store,
// and prints each value.
using System;
namespace geeksforgeeks {
class GFG {
    // Main Method
    public static void Main()
    {
        // declares an 1D Array of string
        string[] store;
        // allocating memory for coffee names.
        store = new string[] {"Americano, ", "Cafe au lait, ", 
                              "Espresso, ", "Cappuccino, ",
                              "Long Black, ", "Macchiato" };
        // Displaying Elements of the array
        Console.WriteLine("Different types of coffee: ");
        Console.WriteLine();
        foreach(string coffeename in store)
            Console.WriteLine(coffeename + " ");
    }
}
}
输出:
Different types of coffee: 

Americano,  
Cafe au lait,  
Espresso,  
Cappuccino,  
Long Black,  
Macchiato

Properties

属性 说明
IsFixedSize 获取一个值,该值指示 Array 是否具有固定大小。
IsReadOnly 获取一个值,该值指示 Array 是否为只读。
IsSynchronized 获取一个值,该值指示对 Array 的访问是否同步(线程安全)。
Length 获取数组所有维度中的元素总数。
LongLength 获取一个 64 位整数,表示 Array 所有维度中的元素总数。
Rank 获取数组的排名(维数)。例如,一维数组返回 1,二维数组返回 2,依此类推。
SyncRoot 获取可用于同步对 Array 的访问的对象。

示例 1:

C#


// C# program to illustrate 
// Length property of Array class
using System;
namespace geeksforgeeks {
class GFG {
    // Main Method
    public static void Main()
    {
        // declares an 1D Array of string.
        string[] topic;
        // allocating memory for topic.
        topic = new string[] {"Array, ", "String, ", 
                              "Stack, ", "Queue, ",
                              "Exception, ", "Operators"};
        // Displaying Elements of the array
        Console.WriteLine("Topic of C#:");
        Console.WriteLine();
        // Here we calculate and print 
        // the length of the array, i.e. 6
        Console.WriteLine("Length of the array: {0}",
                                       topic.Length);
        foreach(string ele in topic)
            Console.WriteLine(ele + " ");
    }
}
}
输出:
Topic of C#:

Length of the array: 6
Array,  
String,  
Stack,  
Queue,  
Exception,  
Operators

示例 2:

C#


// C# program to illustrate the
// Rank property of Array class
using System;
namespace geeksforgeeks {
class GFG {
    // Main Method
    public static void Main()
    {
        // declares an 1D Array of string.
        string[] topic;
        // allocating memory for topic.
        topic = new string[] {"Array, ", "String, ", 
                              "Stack, ", "Queue, ",
                              "Exception, ", "Operators" };
        // Displaying Elements of array
        Console.WriteLine("Topic of C#:");
        Console.WriteLine();
        // Rank property provides the dimension rank
        // here we use 1-D array so it return 1
        // if we use 2-D array then it will return 2
        Console.WriteLine("Rank of the array: {0}",
                                         topic.Rank);
        foreach(string ele in topic)
            Console.WriteLine(ele + " ");
    }
}
}
输出:
Topic of C#:

Rank of the array: 1
Array,  
String,  
Stack,  
Queue,  
Exception,  
Operators

Method

方法 说明
AsReadOnly() 返回指定数组的只读包装器。
BinarySearch() 使用二分搜索算法在一维排序数组中搜索值。
Clear() 将数组中的元素范围设置为每种元素类型的默认值。
Clone() 创建数组的浅拷贝。
ConstrainedCopy() 从指定源索引开始复制数组中的一系列元素,并将它们粘贴到从指定目标索引开始的另一个数组中。保证在复制未完全成功时撤消所有更改。
ConvertAll() 将一种类型的数组转换为另一种类型的数组。
Copy() 将一个数组中的一系列元素复制到另一个数组,并根据需要执行类型转换和装箱。
CopyTo() 将当前一维数组的所有元素复制到指定的一维数组中。
CreateInstance() 初始化 Array 类的新实例。
Empty() 返回一个空数组。
Equals() 确定指定对象是否等于当前对象。
Exists() 确定指定数组是否包含与指定谓词定义的条件匹配的元素。
Find() 搜索与指定谓词定义的条件匹配的元素,并返回整个数组中第一个出现的元素。
FindAll() 检索与指定谓词定义的条件匹配的所有元素。
FindIndex() 搜索与指定谓词定义的条件相匹配的元素,并返回数组或其一部分中第一次出现的从零开始的索引。
FindLast() 搜索与指定谓词定义的条件匹配的元素,并返回整个数组中最后一个出现的元素。
FindLastIndex() 搜索与指定谓词定义的条件相匹配的元素,并返回数组或其一部分中最后一次出现的从零开始的索引。
ForEach() 对指定数组的每个元素执行指定的操作。
GetEnumerator() 返回数组的 IEnumerator。
GetHashCode() 用作默认的哈希函数。
GetLength() 获取一个 32 位整数,表示 Array 指定维度中的元素数量。
GetLongLength() 获取一个 64 位整数,表示 Array 指定维度中的元素数量。
GetLowerBound() 获取数组中指定维度的第一个元素的索引。
GetType() 获取当前实例的类型。
GetUpperBound() 获取数组中指定维度的最后一个元素的索引。
GetValue() 获取当前Array中指定元素的值。
IndexOf() 搜索指定对象并返回其在一维数组或数组中元素范围中第一次出现的索引。
Initialize() 通过调用值类型的默认构造函数来初始化 value-type 数组的每个元素。
LastIndexOf() 返回一维数组或数组的一部分中最后一次出现的值的索引。
MemberwiseClone() 创建当前对象的浅拷贝。
Resize() 将一维数组的元素数量更改为指定的新大小。
Reverse() 反转一维数组或数组的一部分中元素的顺序。
SetValue() 将当前 Array 中的指定元素设置为指定值。
Sort() 对一维数组中的元素进行排序。
ToString() 返回表示当前对象的字符串。
(继承自对象)
TrueForAll() 确定数组中的每个元素是否符合指定谓词定义的条件。

示例 1:

C#


// C# program to illustrate the Reverse() Method
using System;
namespace geeksforgeeks {
class GFG {
    // Main Method
    public static void Main()
    {
        // declares an 1D Array of string.
        string[] topic;
        // allocating memory for topic.
        topic = new string[] {"Array, ", "String, ", 
                              "Stack, ", "Queue, ",
                              "Exception, ", "Operators" };
        // Displaying Elements of 
        // the array before reverse
        Console.WriteLine("Topic of C# before reverse:");
        Console.WriteLine();
        foreach(string ele in topic)
        {
            Console.WriteLine(ele + " ");
        }
        Console.WriteLine();
        // using Reverse() method to 
        // reverse the given array
        Array.Reverse(topic);
        // Displaying Elements of array after reverse
        Console.WriteLine("Topic of C# after reverse:");
        Console.WriteLine();
        foreach(string val in topic)
        {
            Console.WriteLine(val + " ");
        }
    }
}
}
输出:
Topic of C# before reverse:

Array,  
String,  
Stack,  
Queue,  
Exception,  
Operators 

Topic of C# after reverse:

Operators 
Exception,  
Queue,  
Stack,  
String,  
Array,

示例 2:

C#


// C# program to illustrate the Sort() Method
using System;
namespace geeksforgeeks {
class GFG {
    // Main Method
    public static void Main()
    {
        // declares an 1D Array of string.
        string[] topic;
        // allocating memory for topic.
        topic = new string[] {"Array, ", "String, ", 
                              "Stack, ", "Queue, ",
                              "Exception, ", "Operators" };
        // Displaying Elements of the array before sort
        Console.WriteLine("Topic of C# before reverse:");
        Console.WriteLine();
        foreach(string ele in topic)
        {
            Console.WriteLine(ele + " ");
        }
        Console.WriteLine();
        // using Sort() method to
        // sort the given array
        Array.Sort(topic);
        // Displaying Elements of
        // array after sort
        Console.WriteLine("Topic of C# after reverse:");
        Console.WriteLine();
        foreach(string val in topic)
        {
            Console.WriteLine(val + " ");
        }
    }
}
}
输出:
Topic of C# before reverse:

Array,  
String,  
Stack,  
Queue,  
Exception,  
Operators 

Topic of C# after reverse:

Array,  
Exception,  
Operators 
Queue,  
Stack,  
String,

参考:



相关用法


注:本文由纯净天空筛选整理自ankita_saini大神的英文原创作品 C# | Array Class。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。