- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在为 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/
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve thi
很难说出这里问的是什么。这个问题是模棱两可的、含糊的、不完整的、过于宽泛或修辞的,不能以其目前的形式得到合理的回答。如需帮助澄清此问题以便可以重新打开,visit the help center .
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 6年前关闭。 Improve thi
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,
我是一名优秀的程序员,十分优秀!