Как вернуть возвращаемое значение функции в LINQ.Как получить возвращаемое значение другой функции?
У меня есть IEnumerable
из objects(Say ObjColl)
. Из этой коллекции объектов я должен отфильтровать объекты на основе возвращаемого значения другого function(say GetObjPropertyValue)
. Моим конечным результатом должен быть Словарь объекта и его свойствоValue. Этот словарь не должен иметь объектов, для которых propertyvalue ничего.
GetObjPropertyValue
Функция принимает объект как вход и возвращает его свойство как строку. Но иногда он ничего не возвращает, если это свойство не существует на объектах.
Мой запрос что-то подобное,
Dictionary(obj, string)=ObjColl.Where(Function(p) not GetObjPropertyValue(p) is nothing)
, но в приведенном выше запросе я должен написать код для хранения возвращаемого значения GetObjPropertyValue (р) и добавить OBJ-р и сочетание ReturnValue к словарю. Как это написать?
Для примера см ниже код:
Последняя строка ниже код является неправильным. но, пожалуйста, предложите мне, как исправить это. Мое намерение состоит в том, что я хочу получить сборник (скажем, словарь) каждого имени фрукта и его цвет (возвращенный другим вызовом функции) для всех плодов, которые GetFruitColor не является ничем (это может быть пустая или действительная строка).
[код] Частная функция GetFruitColor (фрукты) в виде строки 'Возвращает цвет фруктов. «Если действительные фрукты и цвет недоступны, он возвращает« »(пустая строка) « Если фрукты недействительны, фрукты не возвращаются. Конец функция
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
.
Отличный ответ Jon Skeet. Это дает мне правильное решение. Большое спасибо за вашу помощь. – kothasiva