【C#】拡張メソッド まとめ

拡張メソッドは、非常に便利です。
既存のクラスへのメソッドを追加して、インスタンスメソッドのように呼び出しができます。

元々クラスに存在したメソッドのように使えるので、それまで複数ステップを使って書いていたソースをまとめたり、バラつきのあったコーディングをまとめたりできます。

目次

【C#】拡張メソッド まとめ

拡張メソッドを用途ごとに、まとめました。

foreach

foreach null listのチェック

foreachは、nullチェックをしないと’System.NullReferenceException’の例外が発生します。

if文で、if (list != null && list.Count > 0)と書かなければいけないようなケースをOrEmptyIfNull()の拡張メソッドで解決します。

list = nullの場合は、Enumerable.Empty<T>()list.Count = 0の状態にして返すことで、’System.NullReferenceException’の例外発生を回避できます。

あわせて読みたい
【C# 拡張メソッド】 foreach null listのチェック foreachは、nullチェックをしないと ’System.NullReferenceException’の例外が発生するんですよね・・・。 そこで、拡張メソッドを使って簡単回避する方法をご紹介しま...

foreach index付き

foreachは、indexを使わない事で、’System.ArgumentOutOfRangeException’の例外発生をしないようにしているのに、インデックス付きで使いたいことが時々あります。

でもint i = 0;と、変数を宣言してカウントアップするのもレガシーコードのようでなんだが嫌ですよね。Indexed()の拡張メソッドで解決します。

タプルにして返すことで、listの要素foreachで回しながら、indexが取得できます。

あわせて読みたい
【C# 拡張メソッド】 foreach index付き foreachで、インデックス付きで使いたいことが時々あるんですよね。 でも使おうと思うと忘れていたり、書いてみるとけっこう面倒だったり・・・・。 そこで、拡張メソッ...

list

Listのnull・空チェック

if文で、if (list != null && list.Count > 0)と書かなければいけないようなケースをIsNullOrEmpty()の拡張メソッドで解決します。

list != nullか、list.Count > 0のどちらかしか書いてないようなこともなくなり、コードのバラつきも減ります。

あわせて読みたい
【C# 拡張メソッド】 Listのnull・空チェック メソッドの戻り値がListで結果によってnullだったり、空だったりする場合、 その判定のソースコードってけっこう長かったりします・・・・。 そこで、拡張メソッドを使...

キャスト

nullをToString()

nullToString()すると落ちます。
でもXxx != null ? Xxx.ToString() : null;と毎回判定をするというのも大変です。ToStringOrDefault()ToStringOrEmpty()の拡張メソッドで解決します。

あわせて読みたい
【C# 拡張メソッド】nullをToString() nullをToString()すると見事に落ちます。 とはいえ、イチイチチェックするのは面倒ですよね。 そこで、拡張メソッドを使って簡単回避する方法をご紹介します。 【【C# ...

DeepCopy

ディープコピー

参照型のクラスは、そのままではコピー先の変更がコピー元に影響してしまいます。
参照型のクラスをコピー元と切り離して、別オブジェクトでコピーする方法です。

あわせて読みたい
C# DeepCopyする方法 こんにちは!トミセンです。 オブジェクトを複製する場合に必要なDeepCopyですが、 「C#でDeepCopyどうやるの?」 「C#って、Javaと書き方が違うの?」 分かってしまえ...

まとめ

拡張メソッドは、非常に便利です。事前に用意しておくだけで、コーディングの効率が格段に変わります。

活用して、快適なコーディングを!

それでは、また。

よかったらシェアしてね!
目次
閉じる