C#

C# JSON.Netを使ってJSONをデシリアライズ

C#

var jobj = JsonConvert.DeserializeObject<Newtonsoft.Json.Linq.JContainer>(arg); listBoxKen.Items.AddRange(jobj["response"]["prefecture"].ToArray());こんな感じ。こんなふうにforeachで分離できたり foreach (var item2 in jobj) { } 項目があるかどうかはこうチェックできる var ite</newtonsoft.json.linq.jcontainer>…

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#でBitMEX仮想通貨自動取引BOT

C#

ここを雛形に作ってくといい感じhttps://dora345.com/2018/06/22/bitmex-c-bot-develop/

c#でユニークid 生成

c#

世界で重複することがない、ユニークな128bit(16byte)のランダムな数値であるGUID値を生成する。 using System; // Guid,Console class GuidSample { public static void Main(string[] args) { String id = Guid.NewGuid().ToString("N"); Console.WriteL…

BitMEX API で引数boolの場合 ToLower()で小文字にしないと無視されるよ

C#

たとえば https://testnet.bitmex.com/api/v1/trade/bucketed?symbol=XBTUSD&binSize=1h&partial=True&count=1&start=0&reverse=Falseだと partial / reverse が無視されてデフォルトになっちゃう。 https://testnet.bitmex.com/api/v1/trade/bucketed?symbo…

C# による JSON 相互変換 (Json.NET 利用)

C#

List<>とかの配列をjsonに変換 class Book { public int Id { get; set; } public string Name { get; set; } public string Asin { get; set; } } ... using using System.Collections.Generic; using using Newtonsoft.Json; .... // 日本語ちゃんと出力さ…

DomainModelからViewModelに詰め替える時には退屈だしエラー積み込むかもしれんからバカ正直にコード書かずにAutoMapperとか使おうぜ(超訳)

C#

AutoMapperとは、その名の通り、オブジェクト同士を自動でマッピングしてくれるライブラリnugetでインストールして使おう PM> Install-Package AutoMapper ネタ元 http://kiyokura.hateblo.jp/entry/2014/09/17/093000

Prism.Mvvmのインストール

C#

NuGetパッケージの管理からは探せなかったのでパッケージ マネージャー コンソールから PM > Install-Package Prism.Mvvm -Version 1.1.1 ネタ元 https://www.nuget.org/packages/Prism.Mvvm/1.1.1

C# で Thread.Sleepじゃなくて Task.Delay 使ったほうがよさげ

C#

Thread.Sleep Method は、スレッドを止めるメソッドだから、スレッドがブロックされます。だから、この非同期処理が、メインと同じスレッドを使っているとしたら、メイン側のスレッドも停止します。Task.Delay Method (TimeSpan, CancellationToken) こちら…

NuGetでインストールできるBitFlyerライブラリ BitFlyer.Apis

C#

インストール PM> Install-Package BitFlyer.Apisなにかとpythonでbot作る人多いのでC#情報少ないですねー ネタ元 https://github.com/kiyoaki/bitflyer-api-dotnet-client

Html Agility Packを使ってWebページをスクレイピングするには?[C#、VB]

スクレイピングには便利なライブラリらしい。 ネタ元 http://www.atmarkit.co.jp/ait/articles/1501/27/news140.html

LINQ

C#

あまり難しく考えず、「LINQ は foreach のパワーアップ版」と覚えよう。 ネタ元 https://qiita.com/nskydiving/items/c9c47c1e48ea365f8995

Html Agility Packを使ってXPathでWebページをスクレイピングする

NuGetでHtml Agility Packを追加。例(VB.NETコード) Sub Main() Console.WriteLine("HttpClientクラスで取得したWebページを解析する(Html Agility Pack)") ' 時間計測用のタイマー Dim timer = New System.Diagnostics.Stopwatch() timer.Start() ' .NET …

C# で enum と int 、 string を 相互 に 変換 する 方法

C#

列挙型(enum) → 文字列(string) var enmVal = Season.Spring; var strVal = Enum.GetName(typeof(Season), enmVal);列挙型(enum) → 数値(int) var enmVal = Season.Autumn | Season.Winter; var intVal = (int)enmVal;文字列(string) → 列挙型(enum) var str…

C#/VB.netですべての例外をキャッチする

vb.net Try 'ファイルを開く sr = System.IO.File.OpenText(filePath) Catch ex As System.IO.FileNotFoundException System.Console.WriteLine(ex.Message) Return Nothing Catch ex As System.IO.IOException System.Console.WriteLine(ex.Message) Return…

C#でGoogleカレンダーからAPIで日本の祝日を取得する

C#

Newtonsoft.Json 使います。 public static HashSet<DateTime> GetHolidays(int year) { var key = "あなたのAPIキー"; var holidaysId = "japanese__ja@holiday.calendar.google.com"; var startDate = new DateTime(year, 1, 1).ToString("yyyy-MM-dd") + "T00%3A00%</datetime>…

マルチスレッドで高速なC#を書くためのロック戦略

C#

セマフォ ミューテックスなど。Interlocked lock SemaphoreSlim Semaphore Mutex速度はこんな感じらしいです。 Interlocked > lock > SemaphoreSlim > Semaphore > Mutex 使い方の詳細はネタ元を ネタ元 https://qiita.com/tadokoro/items/28b3623a5ec58517d…

dynamicなSystem.JsonもといJsonValueを使う方法

C#

NuGetでいれようとしてもGUIのほうからは見つからないので、コンソールから以下のコマンドでインストール PM> Install-Package JsonValue -Version 0.6.0こんなデータ { "id":20, "name":"味噌", "price":250 }こうコード書くと using System; using System.…

C#で配列(バイト配列)のコピー

C#

System.Array.Copyを使う ネタ元 http://dalmore.blog7.fc2.com/blog-entry-57.html

C#でバイト型配列を文字列に変換する

C#

//バイト型配列"bytesData"に文字列データが入っているものとする string str; //Shift JISとして文字列に変換 str = System.Text.Encoding.GetEncoding(932).GetString(bytesData); //JISとして変換 str = System.Text.Encoding.GetEncoding(50220).GetStri…

C#でstring(文字列)からバイト型配列 byte[] (バイナリ) に変換する

C#

private void button1_Click(object sender, EventArgs e) { string text = "文字列"; //ASCII エンコード byte[] data = System.Text.Encoding.ASCII.GetBytes(text); //データがShift-JISの場合 //byte[] data = System.Text.Encoding.GetEncoding("shift_…

C#で文字列から一行ずつ読み込む

C#

String InputTxt = "..."; System.IO.StringReader rs = new System.IO.StringReader(InputTxt); //StreamReaderを使うと次のようになる //System.IO.MemoryStream ms = new System.IO.MemoryStream // (System.Text.Encoding.UTF8.GetBytes(InputTxt)); //S…

C#でDataContractを使えるようにする

C#

プロジェクト右クリック>追加>参照から アセンブリ>フレームワークより「System.Runtime.Serialization」にチェックでOK ネタ元 https://garafu.blogspot.jp/2013/11/aspnet-web-api-datacontract.html

VB.NET/C#でガベージ・コレクタを明示的に動作させる

C#

VB.net Imports System ... System.GC.Collect()C# using System; ... GC.Collect(); ネタ元 http://www.atmarkit.co.jp/fdotnet/dotnettips/021gc/gc.html

WebSocket周りの情報収集

C#

メモClientWebSocket クラスは.NET4.5以降じゃないと使えない https://msdn.microsoft.com/ja-jp/library/system.net.websockets.clientwebsocket(v=vs.110).aspx http://kimux.net/?cat=3 http://kimux.net/?p=929 http://www.atmarkit.co.jp/ait/articles/…

C#のアクセス修飾子と継承

C#

自分自身のアセンブリ内部のクラスからのみ見える ってのが意味がわからない アクセス修飾子 ・private 同一クラス内のみ ・public どこからでも ・protected 派生クラスから ・internal 自分自身のアセンブリ内部のクラスからのみ見える ->internalはデフォ…

C#でスレッドをAbort()はあかん

C#

スレッドの強制終了は、危険です。 予期しない状態で終了することにより、データ破壊等の障害が発生する可能性があります。 ネタ元 https://ja.stackoverflow.com/questions/5743/%E3%83%9E%E3%83%AB%E3%83%81%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89%E3%81%A7…

C#のロックの処理速度比較

C#

Interlocked > lock > SemaphoreSlim > Semaphore の順に早いようです。ちなみに lock ステートメントのなかでロックされるのは、lock に指定したオブジェクトのみ なので注意。ネタ元 http://qiita.com/tadokoro/items/28b3623a5ec58517d431 http://d.haten…

Visual C# を使用してスレッドを作成する方法

C#

using System.Threading; ... private void ThreadTask() { ...処理 } ... // タスク起動 Thread trd = new Thread(new ThreadStart(this.ThreadTask)); trd.IsBackground = true; trd.Start(); ネタ元 https://support.microsoft.com/ja-jp/help/815804/how…

coincheckのAPIをC#から実行サンプル

C#

たすかるー サイト https://kokenji.net/coincheck-api/