LINQに別の関数の戻り値を与える方法。別の関数の戻り値を取得するには?
IEnumerable
はobjects(Say ObjColl)
です。そのオブジェクトコレクションから、別のfunction(say GetObjPropertyValue)
の戻り値に基づいてオブジェクトをフィルタリングする必要があります。私の最終的な出力は、Dictionary of objectとそのpropertyValueでなければなりません。この辞書は、propertyvalueが何もないオブジェクトを持つべきではありません。
GetObjPropertyValue
関数は、Objectを入力として受け取り、そのプロパティをstringとして返します。しかし、オブジェクトにそのプロパティが存在しない場合は何も返しません。
私のクエリは、
Dictionary(obj, string)=ObjColl.Where(Function(p) not GetObjPropertyValue(p) is nothing)
のようなものであるが、上記のクエリで私はGetObjPropertyValue(P)の戻り値を格納し、辞書にOBJ-pとの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
最後の行が間違っています。だからk
にgetFruitColorを入れて、それを修正してk
の値を保存し、果実とk
という値の辞書として出力する方法を教えてください。私はお勧めし
優れた答えJon Skeet。それは私に正しい解決策を与えます。助けてくれてありがとう。 – kothasiva