vb.net - 将 LINQ 表达式结果返回到命名/强类型变量
问题描述
我需要将 Linq 函数的结果传递给类型的强类型变量ZipTwoBusinessObject
,以便稍后使用该对象的其他组件可以知道期望什么样的数据。
在我的情况下,这个组件是asp:Repeater
Web 窗体控件,我需要传入类型以具有强类型的转发器控件,但是这是更普遍的问题。
我正在使用最新的 Visual Studio 2019。
Public Class ZipTwoBusinessObject
Public Property Name As String
Public Property Value1 As Decimal
Public Property Value2 As Decimal
End Class
Dim ZipTwo As List(Of ZipTwoBusinessObject) = Test1.Zip(Test2,
Function(ccc, ddd) New With {
.Name = ccc.Name,
.Value1 = ccc.Value,
.Value2 = ddd.Value
}).ToList
Linq 表达式返回错误:BC30311 类型“列表(匿名类型:...)”的值无法转换为“列表(ZipTwoBusinessObject)”。
更新:
我可能会遍历 ZipTwo 的匿名元素并将其分配给ZipTwoBusinessObject
. 但是使用 LinqZip
方法是没有意义的,因为我可能会在同一个循环中压缩这两个对象。但是,这将是一个部分解决方案,因为使用Join
而不是Zip
. 是的,我确实Join
在其他地方使用过。
解决方案
它想要New ZipTwoBusinessObject With
而不是New With
. 后者创建一个匿名类型。
更多信息:匿名类型 (Visual Basic)。
推荐阅读
- c++ - c ++:程序崩溃,参数(按值)传递给lambda
- javascript - ngClass 不会根据变量值改变颜色
- ruby-on-rails - Rails 选择选项根据另一个选择动态变化(没有 ajax)
- parity - 获取最终区块数据
- spring - Spring Boot 谷歌云秘密管理器
- html - Blazor 双向绑定
- hive - Hive SQL - 在没有 `chr()` 的情况下测试 \u0000 (ascii 00)
- airflow - Airflow dag 未按计划运行(而其他计划同时运行)?
- c# - 从控制器操作返回 File(MemoryStream) 时出现内部 nlog 异常
- algorithm - 非退化多边形输出的 Sutherland-Hodgman 算法变体