np.bincount(x)的簡單解釋
阿新 • • 發佈:2020-12-14
本隨筆為個人複習鞏固知識用,多從書上總結與理解歸納得來,如有錯誤麻煩指正
資料簡單來說就是將一連串相同型別的的資料按順序儲存起來的容器。陣列中的數值型別預設為0,引用型別預設為null。陣列的索引從0開始,具有n個元素的陣列的縮影為從0~n-1。
1.陣列的建立
//宣告一個用於儲存int型別的一維陣列並賦值
int[] array1 = new int[2];
array1[0] = 1;
array1[1] = 2;
//宣告同時賦值
int [] array2 = new int[] { 1, 9, 5, 7, 3 };
//另一種宣告方式
int[] array3 = { 1, 2, 3, 4, 5, 6 };
//宣告二維陣列
int[,] multiArray = new int[2, 3];
multiArray[0, 0] = 1;
multiArray[0, 1] = 2;
//宣告同時賦值
int[,] multiArray2 = { { 1, 2, 3 }, { 4, 5, 6 } };
2.陣列的遍歷
陣列是從抽象類array派生的引用型別。由於此型別實現類IEnumerable介面的IEnumerator,因此可以對C#中所有陣列使用foreach迭(die)代。
打字的時候還有些字打不出來(一直以來都讀錯了),我的輸入法可以用分號+x的形式開手寫,遇到一些情況可以考慮一下。
int[] array = new int[] { 1, 2, 3, 4, 5 };
//用for遍歷
for(int i = 0; i < 5; i++)
{
Console. WriteLine(array[i]);
}
//用foreach遍歷
foreach(int n in array)
{
Console.WriteLine(array[n]);
}
3.迭代器
除了普通的陣列,很多運算元組的泛型類sql語句都支援foreach,比如List,Dictionary等,除此之外我們也可以對任何自定義的型別使用foreach,前提是繼承了IEnumerable介面(這個介面有泛型和非泛型兩版本)。
非泛型介面的GetEknumerator示例
class IntList : System.Collections.IEnumerable
{
int[] numbers = null; //foreach遍歷的陣列
public int this[int index] //索引器
{
get { return numbers[index]; }
set { numbers[index] = value; }
}
public int Length { get { return numbers.Length; } }
public IntList(int length)
{
numbers = new int[length];
}
public System.Collections.IEnumerator GetEnumerator() //重寫介面方法
{
return numbers.GetEnumerator();
}
}
class Program
{
static void Main(string[] args)
{
IntList list = new IntList(10); //例項化
for(int i = 0; i < 10; i++)
{
list[i] = i; //賦值0~9
}
foreach(var n in list) //foreach迴圈
{
Console.WriteLine(n); //輸出0~9
}
}
}
4.var
在後面一個foreach迴圈中使用到了var,我的參考書中並沒有說明,在學習瞭解後,找到相關說明
var:根據所賦值資料推斷出型別
var v1=1; //int
var v2="2"; //string
var v3='3'; //char
var v4=true; //bool
在unity中,可以通過對迭代器c#教程的運用實現類似非同步的效果,之後會另開篇章說一下。