文字列が与えられたときに作成されたすべての関数を渡し、変更された文字列を生成する一連の関数を作成したいと考えています。例: コレクションの関数を生成して結合する
string[] arr = {"po", "ro", "mo", "do"};
var modify = "pomodoroX";
foreach (var token in arr)
{
modify = modify.Replace(token, "");
}
Console.WriteLine(modify); // Output: X
これは、問題を解決するが、私は機能性溶液中で興味を持っています:
Console.WriteLine(
arr.Select<string, Func<string, string>>(val => (s1 => s1.Replace(val, string.Empty)))
.Aggregate((fn1, fn2) => fn1 += fn2)
.Invoke("pomodoroX")
);
// Output: pomoroX -> Only last element applied because:
// the functions are not getting combined.
だから、基本的には、配列「ARR」を取ると、各弦のため、その文字列を削除する機能を作成します。 現在のソリューションに欠陥があり、最後の関数だけが適用されます。これを代理人に変換して、+=
演算子と組み合わせることはできません。
さらに機能的なソリューションがありますか?
おかげでたくさんの友人! Soo関数の構成は、fn(fn2(param))と同様に行われます。 – rinormaloku
@rinormaloku、それはまさに正しいことです。 –