Linq和对象的包装器

时间:2013-06-12 12:52:34

标签: .net vb.net linq

我的班级MyObjWidth属性 我需要将该属性从MyObj移除到将包裹MyObj的MyObjWrapper 我这样用它:

Dim _MyObjWrapper As MyObjWrapper = New MyObjWrapper(_myObj)
Dim theWidth as Integer = _MyObjWrapper.Width

选择我使用的MyObj的特定宽度

Dim q = From mo In myContainer.GetMyObjs() 
        Where mo.Width > 50 
        Select mo.Width Distinct

现在,如果Width不再属于MyObj,我想使用而不是 mo.Width moWrapper.Width

Dim q = From mo In myContainer.GetMyObjs() 
        Where New MyObjWrapper(mo).Width > 50 
        Select New MyObjWrapper(mo).Width Distinct

有没有办法使用2次包装器的构造函数MyObjWrapper(mo)?

1 个答案:

答案 0 :(得分:3)

我的VS安装现在很疯狂,所以我无法测试这个,但尝试类似:

Dim q = From mo In myContainer.GetMyObjs() 
        Let someObj = New MyObjWrapper(mo)
        Where someObj.Width > 50 
        Select someObj.Width.Distinct