当前位置:  开发笔记 > 后端 > 正文

如何在vb.net中将DataSet转换为Dictionary?

如何解决《如何在vb.net中将DataSet转换为Dictionary?》经验,为你挑选了1个好方法。

我的WCF服务函数返回类型是Dictionary(Of String,String).所以我必须将我的数据集转换为字典.

这是我的数据集示例.

帐户帐户名称

abc abc1

abc abc2

abc abc3

xyz xyz1

xyz xyz2

xyz xyz3

xyz xyz4

pqr pqr1

pqr pqr2

pqr pqr3

pqr pqr4

pqr pqr5

pqr pqr6

使用LINQ或不使用LINQ,如何将数据集转换为字典(字符串,字符串)

此致,RN



1> Enigmativity..:

这里有一些使用LINQ的选项.

最直接的"单线"是:

Dim dictionary =
    ds.Tables(0).Rows.OfType(Of DataRow)() _
        .ToDictionary(Function (dr) dr.Field(Of String)(0), _
            Function (dr) dr.Field(Of String)(1))

我认为VB.NET lamdba语法有点难看,所以我喜欢把它们拉出来:

Dim fk As Func(Of DataRow, String) = Function (dr) dr.Field(Of String)(0)
Dim fv As Func(Of DataRow, String) = Function (dr) dr.Field(Of String)(1)

Dim dictionary = ds.Tables(0).Rows.OfType(Of DataRow)().ToDictionary(fk, fv)

这甚至可能太难看了,所以这是一个选择:

Dim fn as Func(Of Integer, Func(Of DataRow, String)) = _
    Function (n) _
        Function (dr) _
            dr.Field(Of String)(n)

Dim dictionary = ds.Tables(0).Rows.OfType(Of DataRow)().ToDictionary(fn(0), fn(1))

甚至按列名称:

Dim fs as Func(Of String, Func(Of DataRow, String)) = _
    Function (s) _
        Function (dr) _
            dr.Field(Of String)(s)

Dim dictionary =
    ds.Tables(0).Rows.OfType(Of DataRow)() _
        .ToDictionary(fs("AccountName"), fs("Account"))

我希望这些帮助.

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有