(Java)flatMapをすっかり忘れていた
掲題どおりに陥ったので備忘録。
List<List<String>> mainList = new ArrayList<List<String>>(); mainList.add(Arrays.asList("1", "2")); mainList.add(Arrays.asList("3", "4", "5")); mainList.stream() .flatMap(lists -> lists.stream()) .collect(Collectors.toList()) .forEach(System.out::println); // 1 // 2 // 3 // 4 // 5
flatMapにはstreamを渡しましょう。
TypeScriptをコンパイルできない問題
TypeScripitを書いてコンパイルして実行!をしたかったのだが、
「スクリプトを実行する権限がない」とPowerShellに怒られた。(詳しいメッセージは控えてません。)
そんな時はこうする。
PS C:> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process PS C:> Get-ExecutionPolicy RemoteSigned
(SQL)JOINしたレコードを条件としてDELETEする
DELETE B FROM BOOKS B INNER JOIN AUTHORS A ON B.AUTHOR_ID = A.ID WHERE B.PUBLISHED < '1930/12/31'
(ASP.NET,C#)C#雑感
ここ数か月 C# を業務で使ってきました。
簡単なWebアプリケーション開発です。
どうしても C# について書いておきたいと思いました。
まず出自が Java であること。(Cとは全く関係がない、はず。) Javaのフォロワーであり、マイクロソフト製であることから、
「意外に思った」のだが
よくできた言語だと思います。
正直Javaより数段美しい。
マイクロソフト製だけあってIDEである Visual Studioも良くできていて使いやすい。
あとライブラリのインストール・管理が楽だった。NuGetというやつ。
しかし、それにしても開発が苦痛だった。
圧倒的に大きいのが情報が少ないこと。
C#もASP.NETも。
特にASP.NETについては情報があっても古い(のか新しいのかわからない;;)
ザックリと大きな改修を加えてるっぽいのも災いとしか言えない。
調べ方が悪いのだろうか?
今までのキャリアで培った自信を無くすくらいのレベルです。
欲しい情報はあっても2,3件くらい。1件しかたどりつかないこともザラだった。つらい。
海外のほうが普及率が高いのか、英語情報に世話になることが多かった。
Javaの圧倒的な開発案件数とそれに伴う情報量、ライブラリ数、C#では絶対にかなわないと思う。
ちょまどさんはC#の人だと認識してるのだけれど、もっと普及や情報発信に努めてほしい。
いまのところ一回もちょまどさん発信の情報には至っていない。
以上、C#の残念なところでした。
(ASP.NET.C#)appsessings.json
設定情報などコンフィギュレーションを書くところがわからない。
別に新規に作ってもよいのだけれど、何を使って読み込めばいいのかわからない。
別に新規に作ってもよいのだけれど、面倒くさい。
ということで、 appsettings.json に書くことにしました。
// appsettings.json { "Logging": { "IncludeScopes": false, "LogLevel": { "Default": "Trace", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } }, "AllowedHosts": "*", "ConnectionStrings": { "SQLServerConnection": "Server=XXXXX\\SQLEXPRESS;Database=LeaveManagement;Trusted_Connection=True;MultipleActiveResultSets=true" }, "Application": { "Mail": { "ClientID": "xxxxxxxxxx", "ClientSecret": "xxxxxxxxxx", "TenantId": "xxxxxxxxxx" } } }
// Startup.cs public void ConfigureServices(IServiceCollection services) { services.AddControllersWithViews(); // appsetting.json読み込み services.Configure<AppSettings>(Configuration); // ←なんなんだ、この Configuration ってのは。コンテクストから言って appsetting.json を表してるのだろうけど。。。 // ・・・ }
appsettings.json をインジェクションできる。これは便利
public EmployeeMstController(IOptions<AppSettings> optionAccessor) { this._appSettings = optionAccessor.Value; }