過去に公開した2つの拡張メソッドを,1つのクラスにまとめました。
(Unity 2018.3.0f2)
スクリプトの用意
まずは,拡張メソッド用のスクリプトを用意します。
使用例
NewBehaviourScript.cs
// List<> を使うため using System.Collections.Generic; // Last クラスの拡張メソッドを使うため using TsuGames; using UnityEngine; public class NewBehaviourScript : MonoBehaviour { void Start() { var string1 = "string1"; Debug.Log(string1.LastChar()); // string2 var string2 = "string2"; Debug.Log(string2.LastChar(0)); // string3 var string3 = "string3"; Debug.Log(string3.LastChar(-1)); // 整数配列 var ints = new int[] { 0, 1, 2 }; Debug.Log(ints.LastElement()); // 小数配列 var floats = new float[] { 0.1f, 1.1f, 2.1f }; Debug.Log(floats.LastElement(0)); // 文字列リスト var strings = new List<string> { "a", "b", "c" }; Debug.Log(strings.LastElement(-1)); // ベクトルリスト var vectors = new List<Vector3> { Vector3.zero, Vector3.one, Vector3.one * 2 }; Debug.Log(vectors.LastElement(1)); } }
解説
まずは名前空間TsuGames
を,using
ディレクティブで指定します。
// Last クラスの拡張メソッドを使うため using TsuGames;
その他メソッド等に関する解説は,過去記事にて御覧くださいませ。
Enumerable.Last メソッドとの違い
LINQ のLast()
メソッドでも末尾要素を取得できますが,LastElement<T>()
メソッドやLastChar
短所は,Last()
メソッドにあるような「条件に該当する要素の中で最後の物」という指定が出来ない点です。
可読性の補助が目的であるため,機能は絞った物となりました。
御要望がございましたら,機能の追加や変更も検討いたします。
以上,配列やリストや文字列の末尾を取得する拡張メソッドの御紹介でした。