c# list與 arraylist用法與區別
問題:請舉例講下
list
<>的用法?來個簡單的例子。。。。謝謝
比如我用
list
test
=new
list
();那麼例項
test
中的所有方法的型別就是
int嗎?
答案:一般的如果要返回乙個集合陣列會用到他。他增加了**的可讀性,通過他,前台編碼的人就可以不費很大力氣了解到這個字段什麼意思。比如宣告了乙個
users
實體類public
calss
users
這個只是代表乙個使用者的物件資訊,如果你獲取的是個使用者列表的化,就可以用
list
<
users
>
userslist
=new
list
<
users
>;然後向列表裡新增每個使用者資訊
users
users
=new
users
();users
.name
="ssss"
;users
.age
="12"
;userlist
.add
(users
);這樣迴圈的向列表裡新增資訊,然後返回這個列表,在前台頁面就可以用迴圈讀出這些資訊。
這個是2.0
的新特徵泛型,用泛型可以解決裝箱拆箱問題,
list
test
=new
list
()這樣定義,
test
這個集合就只能放進了
int資料,因此取出的時候不用(
int)
test[i
]顯式轉換了。
命名空間:
using
system
.collections
;class
program
}class
cls簡單來說,泛型就是限制了操作型別。
用微軟的話講:
「新增到
arraylist
中的任何引用或值型別都將隱式地向上強制轉換為
object
。如果項是值型別,則必須在將其新增到列表中時進行裝箱操作,在檢索時進行取消裝箱操作。強制轉換以及裝箱和取消裝箱操作都會降低效能;在必須對大型集合進行迴圈訪問的情況下,裝箱和取消裝箱的影響非常明顯。」
另外乙個
list
用法例項:
c#裡list的用法
主程式**:
static
void
main
(string
args)類:
class
classlist
}輸出:
abba
aa關於
struct
例項list
類是arraylist
類的泛型等效類,某些情況下,用它比用陣列和
arraylist
都方便。
我們假設有一組資料,其中每一項資料都是乙個結構。
public
struct
item
注意結構是不能給例項字段賦值的,即
public
intid=1
是錯誤的。
using
system
.collections
.generic
;list
<
item
>
items
=new
list
<
item
>();
//新增
item
item1
=new
item
();item1.id
=0;item1
.displaytext
="水星"
;items
.add
(item1
);//新增
item
item2
=new
item
();item2.id
=1;item2
.displaytext
="地球"
;items
.add
(item2
);//修改
//這裡使用的是結構,故不能直接用 items[1].displaytext = "金星";,如果 item 是類,則可以直接用。為什麼呢?因為結構是按值傳遞的。
item
item
=items[1
];item
.displaytext
="金星"
;items[1
]=item;
C 中list建立後無法再修改結構體元素的值
之前沒怎麼用過c 開發,由於工作原因開始學習c 今天發現建立了乙個list集合 裡面的元素是結構體型別 後面再想給它修改和賦值就出現錯誤了。大致是這樣的 這裡定義了乙個學生結構體 public struct stu 建立乙個列表 list list newlist stu 中間省略初始化過程 然後我...
STL中list結構體元素排序
stl中list結構體元素排序 include using namespace std 結構體定義 typedef structst list test 比較類 class sortlist less else if stleft.inum1 stright.inum1 else if stleft...
C 中的結構(結構體)
結構是可以包含資料成員和函式成員的資料結構,這一點和類一樣 下面我們講一下結構與類不同的地方 1.結構體是值型別,無需進行堆分配,類是引用型別 2.結構型別的變數直接儲存資料結構,而類型別的變數儲存對動態分配的物件的引用 3.類支援繼承,結構體不支援繼承 4.關鍵字簡單說下,類是class,結構體是...