7

私はこのコードに出くわしました:

var knownSeparators = new[] { "\\", "/", "|", "." };
return knownSeparators.FirstOrDefault(path.Contains);

path は文字列であり、戻り値も文字列である必要があります。

path.Contains の intellisense はパラメーターを提案しますが、パラメーターがなくても正常に機能します。

これはどのように正確に機能しますか?vb.net でこの動作をコピーする方法はありますか?

4

1 に答える 1

7

FirstOrDefaultはデリゲート (a Func<T, bool>) を受け取り、この呼び出しはメソッド グループからデリゲートを作成しています。それは以下と同等です:

Func<string, bool> predicate = path.Contains;
return knownSeparators.FirstOrDefault(predicate);

私はVB.NETであなたができると思う:

Return knownSeparators.FirstOrDefault(AddressOf path.Contains)

…でも、やってみないとなんとも言えません。

于 2012-05-09T08:55:32.067 に答える