gpt4 book ai didi

.net - 立即执行 LINQ 查询的最便宜的方法是什么

转载 作者:行者123 更新时间:2023-12-01 00:02:17 26 4
gpt4 key购买 nike

在为 SO-answer 生成示例数据时,我想到了这个问题。我不喜欢通过 Tbl.Rows.Add 一个一个地添加 DataRows 的冗长方式,所以我创建了这个伪 LINQ 查询,它除了隐含地添加行外什么都不做:

Private Function GetData() As DataTable
Dim years = {"2010/2009", "2009/2008", "2008/2007", "2007/2006", "2006/2005", "2005/2004", "2004/2003"}
Dim tbl = New DataTable
tbl.Columns.Add(New DataColumn("Year"))
' adds DataRows to the DataTable, need Count to execute the query '
Dim c = (From y In years Select tbl.Rows.Add(y)).Count
Return tbl
End Function

如您所见,我根本不需要查询结果,它的唯一目的是迭代和调用 DataTable.Rows.Add。因此结果在 DataTable 本身中已经可用,查询不需要。

诚然,这个问题有点假设性,因为使用 f.e. 不会有太大区别。 ToList,通常查询的目的是返回一些东西。

但是不管怎样,当只关心执行而不关心结果时,执行 LINQ 查询的最便宜的方法是什么(就内存消耗、执行时间而言)?

编辑:好的,这个问题是一个快速的问题,也是先有鸡还是先有蛋的问题。我想将 20 行代码减少到一行,但注意到我需要某种用于 LINQ 查询的数据源。为此,我创建了数组。但在这一点上,我也可以简单地使用 for-each 循环来添加 DataRows。

结论:将 LINQ 查询用于其用途:查询。那么这个问题就毫无意义了,因为没有最便宜的方法,只有返回正确结果的方法。

最佳答案

我只是将其重写为 foreach:

For Each y As String in years
tbl.Rows.Add(y)
Next

这样更清楚你的意图是什么,马上执行。

关于.net - 立即执行 LINQ 查询的最便宜的方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9010639/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com