如何在Visual Basic中打印LINQ查询?

时间:2016-04-21 13:07:48

标签: .net vb.net linq

Dim query = From row In WorkingDataSet.Tables("myTable").AsEnumerable()
                            Group By InvoiceNumber = row.Field(Of String)("InvoiceNumber") Into InvoiceSum = Sum(row.Field(Of Decimal)("InvoicePaymentAmount"))
                            Select InvoiceNumber, InvoiceSum

我想显示InvoiceNumber和InvoiceSum,但我不知道如何遍历我的查询以便以这样的格式显示它们。

InvoiceNumber: 154145, InvoiceSum, $13434.12

InvoiceNumber: 154145, InvoiceSum, $13434.12

InvoiceNumber: 154145, InvoiceSum, $13434.12

InvoiceNumber: 154145, InvoiceSum, $13434.12

InvoiceNumber: 154145, InvoiceSum, $13434.12

InvoiceNumber: 154145, InvoiceSum, $13434.12

InvoiceNumber: 154145, InvoiceSum, $13434.12

1 个答案:

答案 0 :(得分:1)

如果查询结果属于同一个非匿名class,则通常会通过覆盖ToString()的{​​{1}}方法进行打印。否则,您应该逐个浏览项目并打印它们。

class

一个重要的概念(这里可能会被误解)是For Each q In query Console.WriteLine("InvoiceNumber: " + q.InvoiceNumber + ", InvoiceSum, $" + q.InvoiceSum.ToString("F2")) Next 主要是为查询而设计的,而不是动作赋值。如果您想要打印某些内容(这是操作),您应该在每个元素上使用LINQ而不是使用For Each