ソースコード using System; public static class MulticastDelegateExtensions { public static int GetLength( this MulticastDelegate self ) { if ( self == null || self.GetInvocationList() == null ) { return 0; } return self.GetInvocationList()…
ソースコード using System; using System.Collections.Generic; public static class ListExtensions { public static void DropRight<T>( this List<T> self, int count ) { self.RemoveRange( self.Count - count, count ); } } 使い方 var list = new List<string> { "</string></t></t>…
ソースコード using System; using System.Collections.Generic; public static class ListExtensions { public static void Drop<T>( this List<T> self, int count ) { self.RemoveRange( 0, count ); } } 使い方 var list = new List<string> { "フシギダネ", "フシギソ</string></t></t>…
ソースコード using System; using System.Collections.Generic; using System.Linq; public static class IEnumerableExtensions { public static TSource MinBy<TSource, TResult>( this IEnumerable<TSource> source, Func<TSource, TResult> selector ) { var value = source.Min( selector ); return </tsource,></tsource></tsource,>…
ソースコード using System; using System.Collections.Generic; using System.Linq; public static class IEnumerableExtensions { public static TSource MaxBy<TSource, TResult>( this IEnumerable<TSource> source, Func<TSource, TResult> selector ) { var value = source.Max( selector ); return </tsource,></tsource></tsource,>…
ソースコード public static class StringExtensions { /// <summary> /// 文字列内の改行文字を削除した文字列を返します /// </summary> public static string RemoveNewLine( this string self ) { return self.Replace( "\r", "" ).Replace( "\n", "" ); } } 使い方 var str…
ソースコード using System; using System.Collections.Generic; using System.Linq; public static class DictionaryExt { private static Random m_random; private static Random random => m_random ?? ( m_random = new Random() ); public static KeyV…
ソースコード using System; using System.Collections.Generic; public static class ListExtensions { /// <summary> /// <para>リスト内に指定された要素があるか調べて</para> /// <para>存在する場合はその要素をリストから削除します</para> /// </summary> public static void Remove<T>( this List<T> se</t></t>…
ソースコード using System; using System.Collections.ObjectModel; public static class ArrayExtensions { /// <summary> /// 配列内の要素を複数キーでソートします /// </summary> public static void Sort<TSource, TResult>( this TSource[] array, Func<TSource, TResult> selector1, Func<TSource, TResult> selector2 ) where</tsource,></tsource,></tsource,>…
ソースコード using System; using System.Collections.Generic; public static class DictionaryExtensions { /// <summary> /// 指定したキーを持つ値を削除します。 /// 削除前に指定された関数を呼び出します /// </summary> public static void Remove<TKey, TValue>( this Dictionary<TKey, TValue> se</tkey,></tkey,>…
ソースコード using System; using System.Linq; public static class StringExtensions { public static bool IncludeAny( this string self, params string[] list ) { return list.Any( c => self.Contains( c ) ); } } 使い方 var str = "ピカチュウカイ…
ソースコード using System.Collections.Generic; public static class ListExtensions { public static void AddIfTrue<T>( this List<T> self, bool condition, T item ) { if ( !condition ) { return; } self.Add( item ); } } 使い方 var list = new List<int>(); </int></t></t>…
ソースコード using System; using System.Collections.Generic; public static class ListExtensions { public static void Sort<TSource, TResult>( this List<TSource> self, Func<TSource, TResult> selector ) where TResult : IComparable { self.Sort( ( x, y ) => selector( x ).CompareTo( select</tsource,></tsource></tsource,>…
ソースコード using System; using System.Collections.Generic; public static class DictionaryExtensions { /// <summary> /// 指定されたキーが格納されている場合は指定された関数を呼び出します /// </summary> public static void SafeCall<TKey, TValue>( this Dictionary<TKey, TValue> self, TKey </tkey,></tkey,>…
ソースコード using System.Text; public static class StringExtensions { /// <summary> /// 指定された文字列を指定された回数連結して返します /// </summary> public static string Repeat( this string self, int repeatCount ) { var builder = new StringBuilder(); for…
ソースコード using System.Collections.Generic; using System.Linq; public static class IEnumerableExtensions { /// <summary> /// シーケンスの中から指定した範囲の要素を抜き出す /// </summary> /// <param name="pageNumber">現在のページ番号</param> /// <param name="countPerPage">1 ページあたりに表示する項目の数</param> public sta…
ソースコード using System; using System.Collections.Generic; using System.Linq; public static class IEnumerableExtensions { #region Nearest /// <summary> /// 目的の値に最も近い値を返します /// </summary> public static int Nearest( this IEnumerable<int> self, int </int>…
参考サイト様 差し替え・Minで目的の値に最も近い値を選ぶ 【▲→川俣晶の縁側→技術関連執筆情報→『【省エネ対応】 C#プログラムの効率的な書き方 LINQ to Objects マニアックス』読者サポート】 ソースコード using System; using System.Collections.Generic…
ソースコード using System; using System.Collections.Generic; using System.Linq; public static class IEnumerableExtensions { /// <summary> /// 最小値を持つ要素を返します /// </summary> public static TSource FindMin<TSource, TResult> ( this IEnumerable<TSource> self, Func<TSource, TResult> selector ) { r</tsource,></tsource></tsource,>…
概要 【C#】1つの文字列が複数の文字列のいずれかと等しいか判定する拡張メソッド - コガネブログ 以前、指定した1つの文字列が複数の文字列のいずれかと等しいかどうかを判定する 拡張メソッドを公開しましたが、文字列以外の型でも使えるジェネリック版を…
ソースコード using System.Collections.Generic; /// <summary> /// Dictionary 型の拡張メソッドを管理するクラス /// </summary> public static class DictionaryExtensions { /// <summary> /// <para>指定したキーと値をディクショナリに追加します</para> /// <para>指定したキーが既に格納されている</para></summary>…
はじめに var array = new []{ 1, 2, 3, 4, 5 }; for ( int i = array.Length - 1; 0 <= i; i-- ) { Debug.Log( array[ i ] ); // 5 // 4 // 3 // 2 // 1 } 配列やリストを末尾から処理したい場合、上記のようなループ構文を書きますが for ( int i = array.…
ソースコード /// <summary> /// int 型の拡張メソッドを管理するクラス /// </summary> public static class IntExtensions { /// <summary> /// 数値を加算して、範囲を超えた分は 0 からの値として処理して返します /// </summary> public static int Repeat(this int self, int value, int max)…
ソースコード using System; using System.Collections.Generic; /// <summary> /// Type 型の拡張メソッドを管理するクラス /// </summary> public static class TypeExtensions { /// <summary> /// 指定された Type の継承元であるすべての型を取得します /// </summary> public static IEnumera…
ソースコード using System; using System.Collections.Generic; /// <summary> /// IList 型の拡張メソッドを管理するクラス /// </summary> public static class IListExtensions { /// <summary> /// 先頭にあるオブジェクトを削除し、返します /// </summary> public static T Dequeue<T>(this ILi</t>…
ソースコード using System.Collections.Generic; /// <summary> /// Dictionary 型の拡張メソッドを管理するクラス /// </summary> public static class DictionaryExtensions { /// <summary> /// 指定したキーに関連付けられている値を取得します。 /// キーが存在しない場合は既定値</summary>…
ソースコード /// <summary> /// string 型の拡張メソッドを管理するクラス /// </summary> public static class StringExtensions { /// <summary> /// 指定した文字列をすべて空文字列に置換した新しい文字列を返します /// </summary> /// <remarks> /// "ABCABC".ReplaceEmpty("B") → ACAC /// </remarks> public s…
ソースコード using UnityEngine; /// <summary> /// float 型の拡張メソッドを管理するクラス /// </summary> public static class FloatExtensions { /// <summary> /// 指定のオブジェクトが現在のオブジェクトと等しいかどうかを判断します /// </summary> public static bool SafeEquals ( thi…
ソースコード using System; /// <summary> /// int 型の拡張メソッドを管理するクラス /// </summary> public static class IntExtensions { /// <summary> /// 数値に指定された桁数の固定小数点数を付加した文字列を返します /// </summary> /// <remarks> /// 123.FixedPoint(2) → 123.00 /// 123.FixedP</remarks>…
ソースコード public static class StringExtensions { public static string ToTitleCase(this string self) { return System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(self); } } 使い方 "getName()".ToTitleCase(); // "GetName()"…