vb.net - 将字典转换为结构化格式的字符串

标签 vb.net collections .net-4.0 generic-collections

我有一个声明为var as Dictionary(of String, String)的Dictionary对象。

我试图利用可用于通用集合的LINQ扩展,但只得到非扩展方法。

我需要将Dictionary集合转换为具有以下模式的字符串:key1=val1, key2=val2, ..., keyn=valn
最初想到做一个foreach循环会达到目的,除了我是程序员的事实。

到目前为止,我所拥有的,但是怀疑产生这种情况的最佳逻辑模式:

Public Overrides Function ToString() As String
    Dim ret As String = ""
    For Each kv As KeyValuePair(Of String, String) In Me._set
        If ret <> String.Empty Then
            ret &= ", "
        End If

        ret &= String.Format("{0}={1}", kv.Key, kv.Value)
    Next

    Return ret
End Function

而且由于某种原因,即使我已将System.CoreSystem.Linq库导入到项目中,我的dev-env intellisense中也没有显示任何扩展的LINQ扩展。因此,到目前为止,除非有人可以帮助我使LINQ扩展出现在Intellisense中,否则它们是不可能的。

发现LINQ扩展没有显示的问题,因此它们又重新出现在 table 上了;)

最佳答案

我会像这样用Linq编写整个方法块(对C#-vb.net汤很抱歉...)

锐利的

return String.Join(",",Me._set.Select(kvp=>String.Format("{0}={1}",kvp.Key, kvp.Value).ToArray());

另外,我真的不知道_set是什么。也许您必须强制转换:

C锐度:
return String.Join(",", Me._set.Cast<KeyValuePair<String,String>>().Select(kvp=>String.Format("{0}={1}",kvp.Key, kvp.Value).ToArray());

vb.net:
return String.Join(", ", Me.Select(Function(kvp) String.Format("{0}={1}", kvp.Key, kvp.Value)).ToArray())

希望这会有所帮助,

关于vb.net - 将字典转换为结构化格式的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13610071/

相关文章:

vb.net - vb.net 中的 List.ForEach - 让我困惑

database - 将查询计数存储在 vb 变量中

html - VB.net WebBrowser 控件不处理带有 float 的 CSS div

c# - 通过 Internet 使用 wcf 服务

c# - 不允许在查询中显式构造实体类型 ''

c# - 在草稿文件夹中保存一个项目也会创建一个空白的发件箱项目

vb.net - .ToString错误(vb.net)

actionscript-3 - ActionScript (Vector <T,T>) 中具有多个基本类型的强类型集合?

java - reduce 操作中并行流的同步问题

database - 如果我没有任何文档,我无法在 ravendb 中创建一个集合