对象类型转换器用于不同的争论类型

时间:2013-02-21 14:18:54

标签: vb.net list dictionary casting return-type

说我有两个词典:

Dim dict1 as new dictionary(Of Integer, String)
Dim dict2 as new dictioanry(Of customType, customtype2)

我想将它们转换为方法中的列表,并返回有争议的字典值类型的列表。所以....

Public Function DictToListConverter(ByVal argDict as Dictionary(Of Object, Object), ByVal argType as Type) **What goes here.

我知道我可以在调用例程上转换返回,但这不是最好的解决方案。我不想返回包含值的自定义类。换句话说,我正在寻找一种方法来执行以下操作:

传入字典(Of Integer,字符串)并返回List(Of String

同时,如果我传入一个字典(String,布尔),那么该函数应该返回List(布尔

看起来这是不可能的,我要么必须使用class / struct,要么只是在调用例程中转换对象。只是想知道这个请求是否可行。

再次,谢谢!

2 个答案:

答案 0 :(得分:3)

假设您正在使用.Net 3.5或更高版本,则可以使用以下内容执行此操作...

Public Function DictToListConverter(Of TKey, T)(dict As Dictionary(Of TKey, T)) As List(Of T)
    Return dict.Select(Function(i As KeyValuePair(Of TKey, T)) i.Value).ToList()
End Function

答案 1 :(得分:0)

您需要使用List(Of Object)ArrayList,这或多或少相同。