陣列的不足
我們在使用陣列管理資料的時候,是需要預先知道陣列的長度的。但是在我們實際的開發過程中,很多資料往往無法事先知道一共有多少,在面對這些資料的時候,就無法使用陣列來進行管理了。
一、集合結構
c#中提供了一系列特殊功能的類,這些類可以儲存任意型別的物件,並且長度是可變的,他們統稱為集合。
在 c#程式語言中,集合結構有兩種:泛型集合,非泛型集合。
泛型集合:只能儲存固定型別的物件的一種集合。
要使用泛型集合,我們必須引入對應的命名空間:
system.collections.generic
二、list介紹
list是乙個 c#內建的乙個類,是類我們就可以例項化出物件,本質和陣列一樣,因為 list這個類的內部其實是維護了乙個陣列。
但是 list比陣列靈活,這個類封裝了很多方便我們操作這個內部陣列的各種方法,我們可以方便的對資料進行增加,刪除,修改等操作,且 list的長度是可以動態改變的,在例項化 list型別物件時,不需要指定長度。
三、list基本使用
1.建立泛型集合
①首先引入命名空間:using system.collections.generic;
②list《型別》 集合名 = new list《型別》();
2.集合資料操作
①增加資料
集合名.add(value) //往集合中新增資料;
往集合中新增,資料會不斷的新增到集合中,形成一種類似於排隊的效果。
②查詢資料
集合名[索引] //取出指定索引位置的資料;
list的索引和陣列一樣,也是從 0 開始;
集合的長度可以通過「集合名.count」這個屬性來取得;
③刪除資料
集合名.removeat(索引) //刪除指定索引位置的資料;
該索引位置的資料被刪除後,該索引後面的資料的索引會自動被調整;
④修改資料
集合名[索引] = 新值; //給指定索引的的資料重新賦值;
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;
using system.diagnostics;
namespace one
num.remove(2);//刪除索引為2的值
num[1] = 100;//修改資料}}
}
四、list管理物件
直接上**了。。。
主程式:
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;
using system.diagnostics;
namespace one
set
}public string name
set
}public int attack
set
}public weapon(int id,string name,int attack)
public override string tostring()
-name:-attack:", id, name, attack);}}
}
C List泛型集合
集合是oop中的乙個重要概念,c 中對集合的全面支援更是該語言的精華之一。為什麼要用泛型集合?在c 2.0之前,主要可以通過兩種方式實現集合 a.使用arraylist 直接將物件放入arraylist,操作直觀,但由於集合中的項是object型別,因此每次使用都必須進行繁瑣的型別轉換。b.使用自定...
C List 泛型列表
list在c 應用程式中是一種快捷 易於使用的泛型集合型別,使用泛型程式設計為編寫物件導向程式增加了極大的效率和靈活性。在決定使用ilist 還是使用arraylist類 兩者具有類似的功能 時,記住ilist 類在大多數情況下執行得更好並且是型別安全的。1 新增 向list中依次新增元素 以str...
C List泛型用法
所屬命名空間 using system.collections.generic 泛型的好處 它為使用 c 語言編寫物件導向程式增加了極大的效力和靈活性。不會強行對值型別進行裝箱和拆箱,或對引用型別進行向下強制型別轉換,所以效能得到提高。3 list與陣列的相互轉換 1.從string轉list 例如...