C中Dictionary和list的結合問題

時間 2022-03-15 03:25:21

1樓:陽光的雷咩咩

6756,.,,,,

2樓:匿名使用者

其實沒看懂你在問什麼呢

在c#中,關於list和dictionary的說法,正確的是()。

3樓:匿名使用者

ac是正確的

dictionary沒有removeat方法。

關於b,能返回定義的資料型別,list是不需要轉換的。

4樓:幻想武士

b是錯誤的,dictonary中。v是object型別。需要型別轉換

acd是正確的

c#中list列表集合和dictionary在什麼情況下使用?

5樓:匿名使用者

list屬於泛型的使用,也就是說它可以用來儲存各種型別,當使用list中的值時不需要進行unbox的操作(也就是型別的轉換),但相比之下arraylist雖然可以儲存各種型別,但需要進行unbox操作。

dictionary很顯然是對鍵值對的儲存的,利用dictionary可以很好的進行鍵值對的儲存以便需要的時候根據鍵名來索引到值。

6樓:匿名使用者

一個沒有索引,一個帶有索引。

就像一本書一樣,如果沒有目錄,那麼就相當於list了;如果這本書帶有所以,那就相當於dictionary了。

當你想建立帶有索引的集合可以用dictionary,如果純粹就是為了記錄一個資料集——不分組,就可以利用list。

我舉個例子:

張三:男;李四:女;王五:男。這三個人如果存到list裡面的話(如果僅存名字),是無法知道男女的,但是如果用dictionary的話就可以用「男/女」作為key,把名字(張

三、李四、王五)作為value儲存。

c#:如何往list>裡新增資料 40

7樓:天線寶寶

新增方法如下:

list> listdict = new list>();

dictionarydict = new dictionary();

dict.add("key1","value");

dict.add("key2","value");

listdict.add(dict);

dictionarydict1 = new dictionary();

dict1.add("key1","value");

dict1.add("key2","value");

listdict.add(dict1).

1. style=101時,表示日期字串為:mm/dd/yyyy格式

select convert(datetime,'11/1/2003',101)

--結果:2003-11-01 00:00:00.000

2. style=101時,表示日期字串為:dd/mm/yyyy格式

select convert(datetime,'11/1/2003',103)

--結果:2003-01-11 00:00:00.000

/*== 日期轉換為字串 ==*/

declare @dt datetime

set @dt='2003-1-11'

3. style=101時,表示將日期轉換為:mm/dd/yyyy 格式

select convert(varchar,@dt,101)

--結果:01/11/2003

4. style=103時,表示將日期轉換為:dd/mm/yyyy 格式

select convert(varchar,@dt,103)

--結果:11/01/2003

8樓:匿名使用者

list> listdict = new list>();

dictionarydict = new dictionary();

dict.add("key1","value");

dict.add("key2","value");

listdict.add(dict);

dictionarydict1 = new dictionary();

dict1.add("key1","value");

dict1.add("key2","value");

listdict.add(dict1);

9樓:

先例項化一個 dictionary 然後給dictionary新增資料。

然後再把dictionary 新增進list中。

c# list>新增字典資料的問題

10樓:匿名使用者

dictionarytempdic = new dictionary();

改為dictionarytempdic = null;

foreach (var tempelement in xelement.elements())

{tempdic = new dictionary(); //加上這行

tempdic.add(p1_value, tempelement.attribute(p1_value).value.tostring());

後面的 tempdic.clear();這行刪了

list中儲存的是物件的引用,你一clear,前面加入list中的值就受到影響,最終list中會新增進去n個空的dictionary(這n個物件指向的都是同一個tempdic )

如果你在迴圈的外面加一個比如tempdic.add("abc", "123"); 那你list裡就會變成n個同樣的東西

c# 問題 dictionary的用法。 類與類之間的通訊 。

11樓:匿名使用者

你的問題比較抽象,別人不知道你想要的解答具體是什麼。你可以舉個例子,來說明你想要寫什麼程式,然後如何利用到list和dictionary

list是一個線性表,你可以把他當做長度可變的陣列。

dictionary是關聯集合,把一個鍵對應到一個值。比如你想計算一個檔案中每個單詞的出現次數,則可以將單詞對應到數值。你可以將一個鍵值對儲存到dictionary中,也可以查詢某個鍵對應的值是多少。

他們都是基本的資料結構,你不應當為了用它們而用,而是當你的程式有實際的需要了才用,那個時候你就自然知道用什麼了。至於類通訊,那是常年的物件導向程式設計經驗累積出來的東西,目前的話,你先嚐試用它們解決基本問題即可。

c# 關於 dictionary 一些問題?

12樓:多情從來遇到負心

我不知道我的理解是否正確。。。。暫且就這樣認為把。。。

**是這樣的:

protected void page_load(object sender, eventargs e)}}

////// 對字典集合進行初始化

////// 返回字典集合

private dictionarygetdiclist()

},},},}

};*/

/*reader賦值方法*/

/*var _dic = new dictionary();

while (reader.reade())

;_dic.add(key, homework);     //將物件新增到dictionary集合中

}*//*假定你包裝成了list了,我也不想建一個資料庫了。。。有點懶呀!!!!我就動態的新增了*/

var worklist = new list();

for (int i = 1; i <= 20; i++));}

/******

* worklist假定就是你包裝好的從資料庫中讀取的資料,

*接下來就是進行對集合進行初始化了

*****/

var dic = new dictionary();

foreach (var work in worklist)

return dic;

}public class homework

public string name

}到這裡就ok了,看看效果吧:

搞定了,當然如果你要的是這個效果的話。。。如果是的話不要忘了頂一下啊。。。

需要原始碼或者疑問請私密。。。。

c#中list,dictionary,arraylist,hashtable和陣列的區別是什麼

13樓:匿名使用者

c# 集合類 array arraylist list hashtable dictionary stack queue

1.陣列是固定大小的,不能伸縮。雖然system.array.resize這個泛型方法可以重置陣列大小,

但是該方法是重新建立新設定大小的陣列,用的是舊陣列的元素初始化。隨後以前的陣列就廢棄!而集合卻是可變長的

2.陣列要宣告元素的型別,集合類的元素型別卻是object.

3.陣列可讀可寫不能宣告只讀陣列。集合類可以提供readonly方法以只讀方式使用集合。

4.陣列要有整數下標才能訪問特定的元素,然而很多時候這樣的下標並不是很有用。集合也是資料列表卻不使用下標訪問。

很多時候集合有定製的下標型別,對於佇列和棧根本就不支援下標訪問!

//陣列

int intarray1;

//初始化已宣告的一維陣列

intarray1 = new int[3];

intarray1 = new int[3];

intarray1 = new int;

//arraylist類物件被設計成為一個動態陣列型別,其容量會隨著需要而適當的擴充

方法 1:add()向陣列中新增一個元素,

2:remove()刪除陣列中的一個元素

3:removeat(int i)刪除陣列中索引值為i的元素

4:reverse()反轉陣列的元素

5:sort()以從小到大的順序排列陣列的元素

6:clone()複製一個陣列

//list

可通過索引訪問的物件的強型別列表。提供用於對列表進行搜尋、排序和操作的方法

在決定使用 list 還是使用 arraylist 類(兩者具有類似的功能)時,記住 list 類在大多數情況下執行得更好並且是型別安全的。如果對 list 類的型別 t 使用引用型別,則

兩個類的行為是完全相同的。但是,如果對型別 t 使用值型別,則需要考慮實現和裝箱問題。

如果對型別 t 使用值型別,則編譯器將特別針對該值型別生成 list 類的實現。這意味著不必對 list 物件的列表元素進行裝箱就可以使用該元素,並且在建立大約 500 個列表

元素之後,不對列表元素裝箱所節省的記憶體將大於生成該類實現所使用的記憶體。

//dictionary

表示鍵和值的集合。dictionary遍歷輸出的順序,就是加入的順序,這點與hashtable不同

//sortedlist類

與雜湊表類似,區別在於sortedlist中的key陣列排好序的

//hashtable類

雜湊表,名-值對。類似於字典(比陣列更強大)。雜湊表是經過優化的,訪問下標的物件先雜湊過。如果以任意型別鍵值訪問其中元素會快於其他集合。

gethashcode()方法返回一個int型資料,使用這個鍵的值生成該int型資料。雜湊表獲取這個值最後返回一個索引,表示帶有給定雜湊的資料項在字典中儲存的位置。

//stack類

棧,後進先出。push方法入棧,pop方法出棧。

queue類

佇列,先進先出。enqueue方法入佇列,dequeue方法出佇列。

//dictionary

system.collections.dictionaryentry dic=new system.

collections.dictionaryentry("key1","value1");

dictionaryfruit = new dictionary();

//加入重複鍵會引發異常

fruit.add(1, "蘋果");

fruit.add(2, "桔子");

fruit.add(3, "香蕉");

fruit.add(4, "菠蘿");

//因為引入了泛型,所以鍵取出後不需要進行object到int的轉換,值的集合也一樣

foreach (int i in fruit.keys)

值是:",i,fruit);

} //刪除指定鍵,值

fruit.remove(1);

//判斷是否包含指定鍵

if (fruit.containskey(1))

//清除集合中所有物件

fruit.clear();

} //arraylist

system.collections.arraylist list=new system.collections.arraylist();

list.add(1);

list.add(2);

for(int i=0;inames = new list();

names.add("喬峰");

names.add("歐陽峰");

names.add("馬蜂");

//遍歷list

foreach (string name in names)

//向list中插入元素

names.insert(2, "張三峰");

//移除指定元素

names.remove("馬蜂");

//hashtable

system.collections.hashtable table=new system.collections.hashtable();

table.add("table1",1);

table.add("table2",2);

system.collections.idictionaryenumerator d=table.getenumerator();

while(d.movenext())

//queue

system.collections.queue queue=new system.collections.queue();

queue.enqueue(1);

queue.enqueue(2);

system.console.writeline(queue.peek());

while(queue.count>0)

//sortedlist

system.collections.sortedlist list=new system.collections.sortedlist();

list.add("key2",2);

list.add("key1",1);

for(int i=0;i0)

韋氏詞典的dictionary和thesaurus有什麼區別

thesaurus 側重同義詞反義詞,準備gre考試比較方便用 dictionary就是傳統意義上的詞典 加油奮鬥再加油 區別是dictionary只是解釋了詞彙的基本意思 而thesaurus包括了詞彙的解釋和他的同義詞 近義詞 和反義詞,相當於歸納了詞彙的分類。國出版的冠有韋氏字樣的一批英語詞典...

2019賓士c200l和bm525li那個價效比更高一些女孩子開,現在就是比較糾結喜歡賓士內飾寶

黎明束縛 個人喜好讓我選我會毫不猶豫選擇賓士,賓士c級車內飾也很不錯,還有一點就是賓士的座椅皮真的比其他車舒適,上了年限的車你會發現賓士寶馬奧迪等中高階車,賓士車的座椅是最為耐用的。 歧凌春 525的檔次比c級高,525和賓士e 國產 才是同一個級別的。 那必須是賓士呀 寶馬是最破的 你要說你和啊4...

華晨寶馬520li和525li動力比較

曉龍老師 華晨寶馬520li和525li動力上的區別為 最大扭矩不同 最大馬力不同 最大功率不同 一 最大扭矩不同 1 華晨寶馬520li 最大扭矩 nm rpm 270 1250 4500。2 華晨寶馬525li 最大扭矩 nm rpm 310 1350 4800。二 最大馬力不同 1 華晨寶馬5...