簡體   English   中英

字典作為參數,其中Value-Type無關緊要

[英]Dictionary as parameter, where the Value-Type is irrelevant

我有一個函數,它返回與給定值相比較的Dictionary-Keys-List的下一個更高的值。 如果我們有{1,4,10,24}的鍵列表和給定值8,則該函數將返回10。

顯然,Dictionary的Value-Part的類型對於函數,函數代碼無關緊要

Dictionary<int, int> 

Dictionary<int, myClass> 

會是一樣的。

當我想用任何一個字典調用函數時,方法頭必須是什么樣子,int是key-Type而value-Type是無關緊要的?

我試過了:

private int GetClosedKey(Dictionary<int, object> list, int theValue);

但是當我用詞典調用時,它說有非法的論點。 我不想為我的函數可能被調用的每個不同的值類型復制'n'paste函數。 任何想法,如何實現這一目標?

先謝謝你,弗蘭克

你可以把它變成通用的:

private int GetClosedKey<T>(Dictionary<int, T> list, int theValue)

在大多數情況下,當您調用方法時,您可以使用類型推斷來避免必須為T指定類型參數。

但是,我會考慮將其更改為:

private int GetClosedKey(ICollection<int> list, int theValue)

然后調用它:

int value = GetClosedKey(dictionary.Keys, desiredValue);

這使代碼更加通用 - 畢竟,沒有必要將它與字典緊密結合。 除了其他任何東西,這將使測試更簡單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM