.net 如何在Visual Basic中打印LINQ查询?
我想显示InvoiceNumber和InvoiceSum,但我不知道如何循环查询以这样的格式显示它们.net 如何在Visual Basic中打印LINQ查询?,.net,vb.net,linq,.net,Vb.net,Linq,我想显示InvoiceNumber和InvoiceSum,但我不知道如何循环查询以这样的格式显示它们 Dim query = From row In WorkingDataSet.Tables("myTable").AsEnumerable() Group By InvoiceNumber = row.Field(Of String)("InvoiceNumber") Into InvoiceSum = Sum(row.Field(Of D
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
如果查询结果属于相同的、非匿名的
类
,则通常通过覆盖类
的ToString()
方法来打印它。否则,您应该逐个循环地检查项目并打印它们
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
一个重要的概念(这里可能会被误解)是
LINQ
主要用于查询,而不是用于操作或分配。当您想要打印出某个内容(这是一个操作)时,您应该对每个元素的每个使用,而不是对查询中的每一行使用LINQ
。
@Heinzi它说行未声明。如果查询结果属于同一个非匿名类,则通常通过重写ToString()来打印它
类的方法。否则,您应该逐个循环检查该项并打印它们。@Heinzi我打开了它并编译了它,有没有办法显式键入它?@codemonkeyliketab:是的,如果您用显式类替换选择InvoiceNumber,InvoiceSum
(例如选择新的MyClass(InvoiceNumber,InvoiceSum)
)而不是含蓄的。如果使用隐式类,则需要使用隐式类型。但是您需要隐式键入Dim query=…
,对吗?(我的意思是,您确实有Option Strict On,对吗?如果您没有,您实际上不会使用键入,可以对查询中的每行对象说。
。但请不要这样做。)我更喜欢使用格式字符串,而不是将它们与+
;)连接起来。)@亚历克斯。啊,是的,Console.WriteLine(“InvoiceNumber:{0},InvoiceSum,${1}:{1:F2}”,q.InvoiceNumber,q.InvoiceSum)
当然是使用Console.WriteLine()时的另一个选项。
:)
For Each q In query
Console.WriteLine("InvoiceNumber: " + q.InvoiceNumber + ", InvoiceSum, $" + q.InvoiceSum.ToString("F2"))
Next