.NET9.0でC#はVersion 13になった。
Version 13での新機能は余り目立ったものは無いが、
paramsコレクションは使えそうだ。
paramsとは、メソッドの同じ型の引数を可変にするもので、C# 12までだと、
以下のような感じで、配列しか指定できなかった。。
T f(T1 p1, T2 p2, ... , params T3[] p) {}
C#13からはコレクション全般が使用できるようになった。
これによりどのような利点があるかというと、以下のようなパターンを全て1つの定義でまかなえるようになることだ。
> string JoinString(string delim , params IEnumerable<string> prm) => string.Join(delim,prm);
> JoinString("," , "Paul","John","George","Ringo") // 引数の列挙
"Paul,John,George,Ringo"
> JoinString("," , ["Paul","John","George","Ringo"]) // 配列
"Paul,John,George,Ringo"
>List<string> lst = ["Paul","John","George","Ringo"];
> JoinString("," , lst) // リスト
"Paul,John,George,Ringo"
>JoinString("," , lst.Where(v=>v.Contains("o"))) // クエリ
"John,George,Ringo"
チョット使えそうなのでメモ。