文字列中の英数字を除いて、ひらがなだけにするサンプル
//実行すると「あいうえお」になる System.Text.RegularExpressions.Regex.Replace("aあbい1う2えAおB", @"[a-zA-Z0-9]", "");
XmlSerializerを利用してXMLを読み込んだ際に、以下のエラーが発生した。
System.Xml.XmlException: 名前の先頭に '-' (16 進数値 0x2D) を使用することはできません。 行 49、位置 3。 場所 System.Xml.XmlTextReaderImpl.Throw(Exception e) 場所 System.Xml.XmlTextReaderImpl.ParseQName(Boolean isQName, Int32 startOffset, Int32& colonPos) 場所 System.Xml.XmlTextReaderImpl.ParseElement() 場所 System.Xml.XmlTextReaderImpl.ParseElementContent() 場所 System.Xml.XmlLoader.LoadNode(Boolean skipOverWhitespace) 場所 System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc) 場所 System.Xml.XmlDocument.Load(XmlReader reader) 場所 System.Xml.XmlDocument.Load(Stream inStream)
原因は単純で、コメント「<!–」を記載したはずが「<–」になってた(びっくりマークが無い)。。。
System.Configuration.ConfigurationErrorsException: system.data のための構成セクション ハンドラーを作成中にエラーが発生しました。: 列 ‘InvariantName’ は一意であるように制約されています。値 ‘System.Data.SQLite.EF6’ は既に存在します。 (C:\xxxxxxxx\xxxxxxxxxx.exe.Config line 11) —> System.Data.ConstraintException: 列 ‘InvariantName’ は一意であるように制約されています。値 ‘System.Data.SQLite.EF6’ は既に存在します。
App.configの<system.data>にinvariant=”System.Data.SQLite.EF6″が複数記載されている場合に発生
Visual Studio 2017 C#
[Flags] private enum EnumSample { //項目が混じらないように、それぞれ立てるビットの位置を変える a = 0b0001, //「0b」から始めると2進数で書ける b = 0b0010, c = 0b0100, d = 0b1000 }
//aとcを選択する var sample = EnumSample.a | EnumSample.c; //選択されているかはHasFlagを利用して確認する if (sample.HasFlag(EnumSample.a)) { //こっちに来る Console.WriteLine("aは存在"); } else { //こっちには来ない Console.WriteLine("aは未存在"); } //どの項目が選択されているかを確認したい場合は、列挙体の全項目を回してチェックできる foreach (EnumSample enumValue in Enum.GetValues(typeof(EnumSample))) { Console.WriteLine($"{enumValue} = " + sample.HasFlag(enumValue)); /* * 実行結果 * a = True * b = False * c = True * d = False */ }
C#のコンソールアプリにて、表示する文字色を変更するにはForegroundColorを変更する。
Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine("*****黄*****"); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("*****緑*****"); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("*****赤*****"); Console.ForegroundColor = ConsoleColor.Gray; Console.WriteLine("****元の色****");
元の色はGray。 多用すると逆に見にくいので、エラー発生時などの出力の際には黄色を使うとよいかも。
ファイル名が「file1.txt」「file2.txt」「file10.txt」などの規則性がある場合に、正しくソートしたい場合を想定。 今回は、ファイル名中の数値のみを正規表現で取得し、それをソートすることで実現した。
var fileList = (new DirectoryInfo(filePath)).GetFiles(). Select(x => new { name = x.FullName, //ファイル名だけ取り出す→数字だけ残す→数値に変換する(ソート用) no = int.Parse(Regex.Replace(Path.GetFileName(x.FullName), @"[^0-9]", "")) } ).OrderBy(x => x.no).ToList();