首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字典作为参数,其中Value-Type是不相关的

字典作为参数,其中Value-Type是不相关的
EN

Stack Overflow用户
提问于 2010-03-16 18:29:15
回答 1查看 3.4K关注 0票数 2

我有一个函数,它返回Dictionary-Keys-List的下一个比给定值更高的值。如果我们有一个{1,4,10,24}的键列表和一个给定值8,函数将返回10。

显然,字典的值部分的类型对函数无关紧要,

代码语言:javascript
复制
Dictionary<int, int> 

代码语言:javascript
复制
Dictionary<int, myClass> 

都是一样的。

当我想要使用任何Dictionary调用函数时,方法头应该是什么样子的,它的key-Type是int,而value-Type是无关的?

我试过了:

代码语言:javascript
复制
private int GetClosedKey(Dictionary<int, object> list, int theValue);

但是当我用字典调用它的时候,它说有非法的参数。我不想为我的函数可能被调用的每个不同的值类型复制‘n’粘贴函数。你有什么想法,如何做到这一点?

先谢谢你,弗兰克

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-03-16 18:33:25

您可以将其设置为通用的:

代码语言:javascript
复制
private int GetClosedKey<T>(Dictionary<int, T> list, int theValue)

在大多数情况下,在调用该方法时,可以使用类型推断来避免必须为T指定类型参数。

但是,我会考虑将其更改为:

代码语言:javascript
复制
private int GetClosedKey(ICollection<int> list, int theValue)

然后用以下命令调用它:

代码语言:javascript
复制
int value = GetClosedKey(dictionary.Keys, desiredValue);

这使得代码更加通用--毕竟,没有必要将其与字典紧密耦合。抛开其他事情不谈,这将使测试变得更简单。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2453547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档