Site cover image

Site icon image blog by izumiz

blog by izumiz

C#のメモ1

文字列結合

// 基本的には,+演算子を用いた文字列結合でOK
string concated = "string" + "concatination";

ただし,パフォーマンスを重視する場合はStringBuilder()の方が良いらしい.

StringBuilder sb = new Stringbuilder();

sb.Append("DateTime, Input, \n");
sb.Append($"{DateTime.Now.ToString("yyyy年MM月dd日HH時mm分ss秒");}, {Input},\n");

string resultStr = sb.ToString();

List<T>の中身をWriteLineを1行で書く方法

List<string> stringList = new List<string>() { "Redbull", "Mercedes", "Ferrari", "McLaren", "Alpine", "AlphaTauri"}
Console.WriteLine(String.Join(",", stringList));
                                                                                    
// Redbull,Mercedes,Ferrari,McLaren,Alpine,AlphaTauri

今までforeachなどを使って中身を出力していたけど,1行で簡単にかけるのもっと早く知りたかった…

現在日時取得と文字列へ

DateTime now = DateTime.Now;
Console.WriteLine(now.ToStirng("yyyyMMddHHmmss"));

ディレクトリの作成

あったら作らない.なかったら作る.

private void CreateDirectory(string path)
{
    if (System.IO.Directory.Exists(path))
    {
        Console.WriteLine("That path exists already.");
        return;
    }
    System.IO.Directory.CreateDirectory(path);
}

Formのスクショ

多分動くはず!(Macで動作確認できねえ!)

private void screenShot()
{
    Rectangle rec = this.Bounds;
    Bitmap bmp = new Bitmap(rec.Width, rec.Height, PixelFormat.Format32bppArgb);
    Graphics g = Graphics.FromImage(bmp);
    g.CopyFromScreen(rec.X, rec.Y, 0, 0, rec.Size, CopyPixelOperation.SourceCopy);
    DateTime now = DateTime.Now;
    CreateDirectory(".\\directory");
    string nowString = now.ToString("yyyyMMddHHmmss");
    bmp.Save($".\\directory\\{nowString}.png");
    bmp.Dispose();
}

https://www.itlab51.com/?p=4702