如何在 LINQ 中给出另一个函数的返回值。
我有一个IEnumerable
。objects(Say ObjColl)
从该对象集合中,我必须根据 another 的返回值过滤对象function(say GetObjPropertyValue)
。我的最终输出应该是对象字典及其属性值。这本字典不应该包含没有 propertyvalue 的对象。
GetObjPropertyValue
函数将 Object 作为输入,并将其属性作为字符串返回。但有时,如果对象上不存在该属性,它不会返回任何内容。
我的查询是这样的,
Dictionary(obj, string)=ObjColl.Where(Function(p) not GetObjPropertyValue(p) is nothing)
但在上面的查询中,我应该编写代码来存储 GetObjPropertyValue(p) 的返回值,并将 obj-p 和 returnValue 组合添加到字典中。这要怎么写??
例如见下面的代码:
代码下面的最后一行是错误的。但请建议我如何纠正它。我的意图是,我想要 GetFruitColor 不是空的所有水果(它可以是空的或有效的字符串)的每个水果名称及其颜色(由其他函数调用返回)的输出集合(比如字典)。
[code] 私有函数GetFruitColor(fruit) as string '返回水果颜色。'如果有效水果和颜色不可用,则返回“”(空字符串) '如果水果不是有效水果,则不返回任何内容。结束功能
private sub MyMethod()
Create a list of strings.
Dim fruits As New List(Of String)(New String() _
{"apple", "passionfruit", "banana", "mango", _
"orange", "blueberry", "grape", "strawberry"})
Dim query = _fruits.Where(Function(fruit) k= GetFruitColor(fruit) if not k is nothing select fruit, k)
End Sub
在上面的代码中,最后一行是错误的。那么如何将 getFruitColor 放入k
,如何更正它以保存k
值并将输出作为水果和k
值的字典。