C#13 paramsコレクション

.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"

チョット使えそうなのでメモ。

takezou について

ソフトウェア開発会社(ITと言う言葉は大嫌い)で働く、元技術者。 未だに、社内システム位は作ってますが・・・ プログラミング言語はC#が好き。 好きなことだけ拾って投稿しているので、内容にはあまり期待しないでねw
カテゴリー: .NET, C#, 技術系 パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください