我试图使用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]
没有表数据,即使我知道有一些实际数据要获取:\
答案 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)