将数据库Linq查询结果转换为字符串列表

时间:2018-06-20 17:10:42

标签: vb.net list linq

我试图使用LINQ查询从数据库中获取一些数据,并且由于我仅获取一列数据,所以我想将其存储在字符串列表中。这是我的代码。

Dim POList As New List(Of String)
Using dbContext As New DBLINQDataContext
    Dim query = (From o In dbContext.Orders
                 Where o.Order_Number.StartsWith(JobNumber)
                 Select o.Order_Number)
    POList = query.ToList()
End Using
MessageBox.Show(POList.ToString())

运行此命令时,MessageBox中的数据为

  

System.Collections.Generic.List`1 [System.String]

没有表数据,即使我知道有一些实际数据要获取:\

2 个答案:

答案 0 :(得分:3)

POList.ToString()将显示对象类型的名称。 您可以使用string.Join(",", POList.ToString())

如果您打算经常使用扩展名,您还可以定义扩展方法StringJoin()以将列表显示为字符串。

这是您可以使用的扩展方法:

public static StringExtensions
{
public static string StringJoin(this IEnumerable<string> strings, string seperator)
        {
            if (strings == null) return null;
            return string.Join(seperator, strings);
        }
}

答案 1 :(得分:1)

由于这是一个vb.net问题,因此我翻译了@vendettamit为将来的vb读者带来的好处的绝佳答案。

Public Module StringExtensions
    <Extension()>
    Public Function StringJoin(MyStrings As IEnumerable(Of String), separator As String) As String
        If MyStrings Is Nothing Then
            Return Nothing
        Else
            Return String.Join(separator, MyStrings)
        End If
    End Function
End Module

要使用扩展程序...

Dim l As New List(Of String) From {"Mathew", "Mark", "Luke", "John"}
Dim s As String = l.StringJoin(", ")
Debug.Print(s)