コガネブログ

平日更新を目標にUnityやC#、Visual Studioなどのゲーム開発アレコレを書いていきます

【C#】LINQ で使用できる拡張メソッドが増える「Linq.Extras」紹介

はじめに 「Linq.Extras」をプロジェクトに追加することで LINQ で使用できる拡張メソッドが増えます インストール Visual Studio メニューの「ツール>NuGet パッケージ マネージャー> ソリューションの NuGet パッケージの管理」を選択します 「参照」タブ…

【C#】LINQ を使用して Excel からデータを抽出できる「LinqToExcel」紹介

はじめに 「LinqToExcel」をプロジェクトに追加することで LINQ を使用して Excel からデータを抽出できるようになります インストール Visual Studio メニューの「ツール>NuGet パッケージ マネージャー> ソリューションの NuGet パッケージの管理」を選択…

【C#】LINQ で使用できる検索用の拡張メソッドが増える「SearchExtensions」紹介

はじめに 「SearchExtensions」をプロジェクトに追加することで LINQ で使用できる検索用の拡張メソッドが増えます インストール Visual Studio メニューの「ツール>NuGet パッケージ マネージャー> ソリューションの NuGet パッケージの管理」を選択します …

【C#】DateTime で使用できる拡張メソッドが増える「Exceptionless.DateTimeExtensions」紹介

はじめに 「Exceptionless.DateTimeExtensions」をプロジェクトに追加することで DateTime で使用できる拡張メソッドが増えます インストール Visual Studio メニューの「ツール>NuGet パッケージ マネージャー> ソリューションの NuGet パッケージの管理」…

【C#】string で使用できる拡張メソッドが増える「String.Extensions」紹介

はじめに 「String.Extensions」をプロジェクトに追加することで string で使用できる拡張メソッドが増えます インストール Visual Studio メニューの「ツール>NuGet パッケージ マネージャー> ソリューションの NuGet パッケージの管理」を選択します 「参…

【C#】LINQ で使用できる拡張メソッドが増える「ExtraLINQ」紹介

はじめに 「ExtraLINQ」をプロジェクトに追加することで LINQ で使用できる拡張メソッドが増えます インストール Visual Studio メニューの「ツール>NuGet パッケージ マネージャー> ソリューションの NuGet パッケージの管理」を選択します 「参照」タブを…

【C#】フォルダが空かどうか調べる関数

C#

ソースコード using System.IO; public static class DirectoryUtils { public static bool IsEmptyDirectory( string path ) { if ( !Directory.Exists( path ) ) return false; try { var entries = Directory.GetFileSystemEntries( path ); return entri…

【C#】シーケンスを指定された要素数で分割する拡張メソッド

ソースコード using System.Collections.Generic; using System.Linq; public static class IEnumerableExt { public static IEnumerable<IEnumerable<T>> Chunks<T> ( this IEnumerable<T> self, int size ) { while ( self.Any() ) { yield return self.Take( size ); self = se</t></t></ienumerable<t>…

【C#】List のサイズを設定できる拡張メソッド

ソースコード using System; using System.Collections.Generic; /// <summary> /// List 型の拡張メソッドを管理するクラス /// </summary> public static class ListExtensions { /// <summary> /// サイズを設定します /// </summary> public static void SetSize<T>( this List<T> self, int size ) {</t></t>…

【C#】C# で使用できる拡張メソッドが豊富にまとめられている「EXTENSIONMETHOD.NET」紹介

概要 http://www.extensionmethod.net/ 上記の「EXTENSIONMETHOD.NET」では C# で使用できる拡張メソッドが豊富にまとめられています

【C#】1つ上の階層のフォルダ(ディレクトリ)のパスを取得する方法

C#

ソースコード var path1 = @"C:\Hoge\Fuga"; var path2 = path1.Substring( 0, path1.LastIndexOf( @"\" ) + 1 ); Console.WriteLine( path2 ); // C:\Hoge\

【C#】指定したパスがファイルかフォルダ(ディレクトリ)かを確認する方法

C#

ソースコード using System.IO; ... var path = @"C:\Temp"; var isDirectory = File .GetAttributes( path ) .HasFlag( FileAttributes.Directory ) ; Console.WriteLine( isDirectory ? "フォルダです" : "ファイルです" );

【C#】Dictionary に指定したキーや値が存在するかどうか確認する方法、値を取得する方法

C#

ソースコード using System; using System.Collections.Generic; public static class Program { private static void Main() { var table = new Dictionary<int, string> { { 1 , "フシギダネ" }, { 2 , "フシギソウ" }, { 3 , "フシギバナ" }, { 4 , "ヒトカゲ" }, { 5 </int,>…

【C#】フォルダ(ディレクトリ)を作成、移動(名前の変更)、削除する方法

C#

ソースコード using System.IO; // この一行をソースコードの先頭に記述する public static class Program { private static void Main() { // フォルダ(ディレクトリ)を作成する Directory.CreateDirectory( @"C:\Example\Hoge" ); // フォルダ(ディレク…

【C#】コンソールアプリケーションでタスクバーのアイコンを点滅させてみる

C#

ソースコード using System; using System.Runtime.InteropServices; using System.Text; public static class Program { private delegate bool EnumWindowsDelegate( IntPtr hWnd, IntPtr lparam ); [DllImport( "user32.dll" )] static extern Int32 Flas…

【C#】Windows でトースト通知を送ることができる「console-toast-8」紹介

はじめに 「console-toast-8」を使用すると、 Windows でトースト通知を送ることができます 使用例 "console-toast-8.exe" ^ --template "ToastText02" ^ --title "title" ^ --line1 "message1" ^ --line2 "message2" ^ --app_id "app id" オプション 内容 …

【Unity】専門学生からゲーム会社に就職して Unity エンジニアとして働くまでに読んだオススメの C# の本を7冊紹介

はじめに 僕は2009年に専門学校に入学して、2013年にゲーム会社に就職しました そして、2017年の現在まで、主に Unity エンジニアとしてゲームを開発しています 今回はその中で、読んで良かったと思った C# の本を7冊紹介しようと思います 僕がはじめて C# …

【C#】XmlNodeList で LINQ の「Select」「Where」「First」「FirstOrDefault」を使用できるようにする拡張メソッド

ソースコード using System; using System.Collections.Generic; using System.Xml; public static class XmlExt { public static IEnumerable<T> Select<T> ( this XmlNodeList self, Func<XmlNode, T> selector ) { foreach ( XmlNode n in self ) { yield return selector( </xmlnode,></t></t>…

【C#】DateTime が特定の曜日の場合に true を返す拡張メソッド

ソースコード public static class DateTimeExt { public static bool IsMonday( this DateTime self ) { return date.DayOfWeek == DayOfWeek.Monday; } public static bool IsTuesday( this DateTime self ) { return date.DayOfWeek == DayOfWeek.Tuesday…

【C#】明日の DateTime を返す拡張メソッド

ソースコード public static class DateTimeExt { public static DateTime Tomorrow( this DateTime self ) { return value.AddDays( 1 ); } }

【C#】前日の DateTime を返す拡張メソッド

ソースコード public static class DateTimeExt { public static DateTime Yesterday( this DateTime self ) { return value.AddDays( -1 ); } }

【C#】DateTime が指定された期間内の場合に true を返す拡張メソッド

ソースコード public static class DateTimeExt { public static bool IsBetween( this DateTime self, DateTime from, DateTime to ) { return from <= value && to >= value; } }

【C#】XmlAttribute が null ではない場合にのみ Value を返す拡張メソッド

ソースコード using System.Xml; public static class XmlExt { public static string GetValueOrDefault ( this XmlAttribute self, string defaultValue = "" ) { return self != null ? self.Value : defaultValue; } } 使い方 var attr = node.Attribute…

【C#】シーケンスから null の要素を除外する拡張メソッド

ソースコード using System.Collections.Generic; using System.Linq; public static class IEnumerableExt { public static IEnumerable<T> NotNull<T>( this IEnumerable<T> self ) { return self.Where( c => c != null ); } } 使い方 var list = new [] { "フシギ</t></t></t>…

【C#】配列やリストで要素が末尾かどうかを判定できるループ構文の拡張メソッド

ソースコード using System; using System.Collections.Generic; public static class ListExt { public struct ForEachData<T> { private readonly int m_index ; private readonly T m_value ; private readonly bool m_isLast ; public int Index { get { re</t>…

【Unity】【C#】日本語の文字列をソートする時に使用させていただいているプログラム

はじめに ゲーム開発においてアイテムや商品ラインナップを五十音順で並べたい時などに 上記サイト様のプログラムを使用させていただいています 使い方 var list = new [] { "フシギダネ", "ヒトカゲ" , "ゼニガメ" , }; var sortedList = list .OrderBy( c …

【C#】Manatee.Trello を使用して Trello にリストやカードを追加してみる

前回の記事 はじめに 今回は「Manatee.Trello」を使用して、 Trello にリストやカードを追加してみます 検証環境 .NET Framework 4.5.2 Manatee.Trello 1.18.3 Manatee.Trello.ManateeJson 1.8.1 Manatee.Trello.WebApi 1.1.0.1 ソースコード using Manatee.…

【C#】Manatee.Trello を使用して Trello から情報を取得してみる

はじめに 「Manatee.Trello」を使用すると C# で Trello の情報を取得したり Trello にリストやカードを作成したりできるようになります 検証環境 .NET Framework 4.5.2 Manatee.Trello 1.18.3 Manatee.Trello.ManateeJson 1.8.1 Manatee.Trello.WebApi 1.1.…

【C#】「Trello メンバー追加くん」を Github に公開しました

はじめに 「Trello メンバー追加くん」を Github に公開しました Trello では複数のカードにメンバーを一括で追加できないため C# で専用のツールとして作成しました 概要 Trello 内の指定されたメンバーを複数のカードに一括で追加・削除するツールです。 …

【C#】MyTrelloNet(Trello.NET) を使用して Trello にボードやリスト、カードを追加してみる

前回の記事 はじめに 今回は「MyTrelloNet」を使用して、 Trello にボードやリスト、カードを追加してみます 検証環境 .NET Framework 4.6 MyTrelloNet 1.0.8 ソースコード using System.Linq; using TrelloNet; ... // Trello を操作するインスタンスを生成…