2018-10-19から1日間の記事一覧

C#でListの内の要素をforeach中に削除する

結論から言うと、foreachの中でリストの要素を削除するのは無理です。諦めましょう。*1 代替手段 (1) for文を逆順で回す (2) RemoveAllメソッドで削除 (3) Whereで抜粋する (4) 自作する foreachの右辺でToArray() + Removeはやめましょう 削除しようとする…

C#のクラスと構造体の違い・使い分け方

C#

C#でクラス(class)と構造体(struct)の違いは何か?それぞれどのような性質があるのか?また使い分け方針の紹介です。使用方法は基本的に同じですが性質が割と違います。 双方の性質の違いを考慮し、どちらを使用するかを検討することになります。 …と言って…

C#のList<T>.ForEachでTが構造体の値を更新する

C#

前回、C#の配列にForEachメソッドを追加すると同じく、ListのTが構造体の場合、ForEachメソッド内で引数に対する変更がListへ反映されないため、拡張メソッドの機能を利用して、変更が反映される操作を追加します。 具体的にどういう状況か以下のコード(も…