C#中定義陣列--字串及陣列操作
一、一維:
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},{1,2}}; //定長
三、例子
A:int[] mf1=new int[6];
//注意初始化陣列的範圍,或者指定初值; //包含6個元素的一維整數陣列,初值1,2,3,4,5,6
int[] mf2=new int[6]{1,2,3,4,5,6};
B://一維字串陣列,如果提供了初始值設定項,則還可以省略 new 運算子
string[] mf3={"c","c++","c#"};
C://一維物件陣列
Object[] mf4 = new Object[5] { 26, 27, 28, 29, 30 };
D://二維整數陣列,初值mf5[0,0]=1,mf5[0,1]=2,mf5[1,0]=3,mf5[1,1]=4
int[,] mf5=new int[,]{{1,2},{3,4}};
E://6*6的二維整型陣列
int[,] mf6=new mf[6,6];
四、取得陣列元素個數:
int b;
b = sizeof (a)/sizeof (*a);
c#字串及陣列操作
2007-12-12 17:53字串操作(取當前時間)
string time=convert.tostring(DateTime.Today).split( new char []{' '}); textbox1.text=time[0]; 以空格作為分界點;
陣列概述
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 byt[4];}
還可以有更大的陣列。例如,可以有三維的矩形陣列:int[,,] buttons = new int[4,5,3];
甚至可以將矩形陣列和交錯陣列混合使用。例如,下面的程式碼聲明瞭型別為 int 的二維陣列的三維陣列的一維陣列int[][,,][,] numbers;
初始化陣列
C# 通過將初始值括在大括號 ({}) 內為在宣告時初始化陣列提供了簡單而直接了當的方法。下面的示例展示初始化不同型別的陣列的各種方法。
注意 如果在宣告時沒有初始化陣列,則陣列成員將自動初始化為該陣列型別的預設初始值。另外,如果將陣列宣告為某型別的欄位,則當例項化該型別時它將被設定為預設值 null。
一維陣列
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","Albert"} };
如果提供了初始值設定項,則還可以省略 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);}
由於有了多維陣列,可以使用相同方法來迴圈訪問元素,例如:
int[,] numbers = new int[3, 2] {{9, 99}, {3, 33}, {5, 55}};
foreach(int i in numbers){Console.Write("{0} ", i);}
該示例的輸出為: 9 99 3 33 5 55
不過,由於有了多維陣列,使用巢狀 for 迴圈將使您可以更好地控制陣列元素
相關推薦
C#中定義陣列--字串及陣列操作
一、一維: 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}}; //不定長 in
luajit使用ffi時自動獲取C中定義的陣列長度
在使用luajit的ffi.cdef定義的struct C結構體時,部分欄位使用陣列的方式定義,查遍了各種資料,沒有找到如何自動獲取陣列長度的方法。如有哪位大牛知道其他簡單的辦法獲取陣列長度的,煩告知。先感謝了。 以下是我通過lua的字串匹配方式獲取陣列長度
C/C++中字元指標和字元陣列、字元指標陣列及指向指標的指標的含義
字元指標和字元陣列 char* s1="hello"; char s2[]="world";兩個表示式的含義是一樣的.如果講不同之處的話,VC6中編譯時,對這兩種定義進行了不同的處理;char *s1 = "hello"; 中的"hello",編譯時指標指向的區域位於PE
c# UTF-8解碼編碼及陣列與List<string>之間轉換等基本知識點總結
Encoding utf8 = Encoding.UTF8; //首先用utf-8進行解碼 &
CMake中的字串及檔案操作
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
JS學習筆記之字串及陣列方法
在學習js過程中需要經常操作字串以及陣列並且它們存在很多方法。而這些方法需要我們學習者很熟練的掌握。以便我們能更好的解決問題。 陣列的變異方法:棧方法(後進先出) pop()刪除陣列的最後一項 放回移除的那項 push()在陣列末尾增加一項 返回增加後陣列的長度 佇列方法(先進先出) shift()
Java中定義一個二維陣列
public class Demo { /* * 二維陣列 * 1:定義,初始化 * int[][] arr2 = new int[3][3]; * 第1個3代表這個二維陣列是由3個一維陣列構成的 * 第2個3代表每個一維陣列的元素的個數有3個 * *
C中處理Python的Numpy陣列的程式碼範例
今天處理Python的返回值,折騰了半天,又是連蒙帶猜,找到了辦法。為了方便大家,特別提供出來。希望給其他人帶來工作上的順利。 int fext_python_action(const ImageBuffer* pImage, DataBuffer* pOutput)
如何在C/C 中動態分配二維陣列
如何在C/C++中動態分配二維陣列在C/C++中動態分配二維陣列可以先申請一維的指標陣列,然後該陣列中的每個指標再申請陣列,這樣就相當於二維陣列了,但是這種方法會導致每行可能不相鄰,從而訪問效率比較低。如何申請連續的二維陣列了?本文將分別三個方面講解:一.動態申請列大小固定的二
字串及陣列的屬性方法
一、陣列的相關方法 1、陣列方法總覽: concat() 連線兩個或更多的陣列,並返回結果。 join() 把陣列的所有元素放入一個字串。元素通過指定的分隔符進行分隔。 pop() 刪除並返回陣列的最後一個元素 。 push() 向陣列的末尾新增一個或更多元素,並返回新的
C++中指標訪問二維陣列
學習C++時候關於指標陣列的幾個概念有些迷,搞清楚後寫篇部落格梳理一下 1.系統在編譯陣列和下標時會將其編譯為*(陣列名+下標),其中下標為陣列元素的長度 2.系統在處理二維陣列的時候將其看為陣列元素為一維陣列的一維陣列 #include<iostream>
C#中常見的幾種陣列排序例項
1、氣泡排序冒泡是最常用的排序方法之一,它在第一次排序的時候將每一條記錄的關鍵字進行比較,直到n-1個記錄和n個記錄的關鍵字比較完成為止,再進行下一次排序,直到n-1趟記錄為止 class BubbleSorter /// <summary
如何在C++中動態分配二維陣列
這個問題應該是我以前在CSDN蹭分時回答次數比較多的一個問題了,我的回答一般是三種方法:(1)用vector的vector,(2)先分配一個指標 陣列,然後讓裡面每一個指標再指向一個數組,這個做法的好處是訪問陣列元素時比較直觀,可以用a[x][y]這樣的寫法,缺點是它相當於C
C++中的動態多維陣列
[前言]C++的new操作符是該語言一個非常好的語法特性,然而實際使用中卻發現new操作符有不少限制,為突出的一點便是用new操作符分配多維陣列空間時,不能讓陣列的每一維都動態可變。本文將對此提出一個簡單直觀的解決方案,在一個實際問題的簡化模型中加以說明,並以此釋清許多初
linux C 中常用的字串操作函式
<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSi
c++中建立一個三維陣列
//在堆中開闢一個3×4×5的3維int陣列 #include <stdio.h> #include <malloc.h> int ***p; int i,j,k; void main() { p=(int ***)malloc(3*size
在vue專案中 , 將字串轉陣列 split()
console.log(this.cityItem.fullName); console.log(this.cityItem.fullName.split('')); 在vue專案中,遇到一個常用的方法split(),因為常用,又容易記
在C中如何使函式返回陣列
Java語言的函式可以輕易的返回一個數組,而C/C++卻不能直接返回一個數組。這是由於在C/C++中,陣列不是一種型別,因此不能被直接返回。 在C/C++中,一般有兩種方法來返回一個數組。 第一種方法: 返回一個指向陣列的指標,例如char (*retArray
在C/C++中如何使函式返回陣列
Java語言的函式可以輕易的返回一個數組,而C/C++卻不能直接返回一個數組。這是由於在C/C++中,陣列不是一種型別,因此不能被直接返回。 在C/C++中,一般有兩種方法來返回一個數組。 第一種方法: 返回一個指向陣列的指標,例如char (*retArray)[
C++中堆的使用及自定義型別排序
簡介 C++中堆(heap)是在vector的基礎上實現的。具體地,是定義了一些方法在vector型別資料上進行操作,包括 - make_heap 建立堆(預設最大堆) - push_heap 加入元素 - pop_heap 刪除元素 - sort_h