ふらっと C#,C♯,C#(初心者用) Part150

■ このスレッドは過去ログ倉庫に格納されています
2021/03/23(火) 12:58:24.10ID:ACoFzk2L0
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっと C#,C♯,C#(初心者用) Part149
http://mevius.5ch.net/test/read.cgi/tech/1608085775/
■関連スレ
C#, C♯, C#相談室 Part94
https://mevius.5ch.net/test/read.cgi/tech/1553075856/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/

■情報源
https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries
http://referencesource.microsoft.com/
・Insider.NET > .NET TIPS - @IT
https://www.atmarkit.co.jp/ait/subtop/features/dotnet/dotnettips_index.html
・DOBON.NET .NET Tips
https://dobon.net/vb/dotnet/index.html
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
471デフォルトの名無しさん (ワッチョイ 38e6-4uvq)
垢版 |
2021/04/28(水) 21:38:57.70ID:ohiKXwgS0
ToLinkedListを実装するのが絶対的正義
2021/04/28(水) 21:54:47.35ID:2iApvDDg0
>>457
このスレってJSONを推してる人むっちゃ多いんだけど、CSVと比べて何がいいの?
CSVに出来なくてJSONに出来ることってあるの?
2021/04/28(水) 22:01:00.21ID:N4TU29msM
階層構造を持たせられる
項目の追加が楽
シリアライザが充実している
方言の多いCSVと違い、仕様が統一されている
2021/04/28(水) 22:13:27.34ID:RJLrCSIQM
CSVの方がよさそうならCSVって回答するけど
このスレくらいの質問者だと背景や用途を喋らないので最大公約数的回答になる
2021/04/28(水) 22:18:25.06ID:SKK3EpB30
俺はjsonの方が好きだからjsonを使う
2021/04/28(水) 22:33:03.67ID:roTNJzpQa
CSVとかトラブル製造機じゃん
2021/04/28(水) 22:43:14.57ID:2iApvDDg0
>>473-476
ありがとうございます
なるほど、XMLでも階層構造は持たせられるけど仰々しいですよね
ああ、あれをシリアライザって呼ぶんですね
昔、一回JavaだかでJSON読んでみて満足した記憶があります
GW明けの使い捨てのスクリプトではJSONで書いて読んでみます
2021/04/29(木) 00:09:54.46ID:uAu0lWj/0
CSVは方言多すぎてそこらのパーサー使うの怖いわ
2021/04/29(木) 04:38:08.16ID:mJShgxJuM
unityでc#ぼちぼち覚えてきたけどc#って何ができるんや
2021/04/29(木) 05:53:27.68ID:Pwf8A7W+d
>>479
何でも出来るさ。ライブラリが揃えば。
2021/04/29(木) 05:59:02.89ID:RErNGDPY0
[ {"a" : "1"}, {"b" : "x"} ]

a列のみとか、b列のみしかないJSON が、CSV では、

a,b
1,
,x
2021/04/29(木) 09:03:47.11ID:lalb0v+EM
>>481
わからん
2021/04/29(木) 09:48:46.58ID:IBkpf/CX0
>>477
階層を持つのは後の欠点にもなるからね
結局はCSV形式で持ってた方がいずれ近いうちなるデータベース対応時に楽だよ
2021/04/29(木) 09:55:18.98ID:gug0J2oaa
楽じゃない
2021/04/29(木) 10:10:10.40ID:IBkpf/CX0
>>484
なんでだよ
階層データじゃデータベース入んねぇだろ
2021/04/29(木) 10:27:55.67ID:EFYWvXghd
楽じゃないな。
きちんとした形してるなら階層持ってるデータのほうがマシ。
正規化するよね?常識的に考えて。
2021/04/29(木) 10:28:53.11ID:qu9Hv39D0
jsonはそのままクラスに持たせられるから便利
あとパースできない読めないってことが少ない
xmlもcsvと比較するとjsonに近い

csvはそのまま行と列のデータだからDBにいれるだけなら悪くないしそれならサイズ的に軽い
改行ダブルクォーテーションとかあと上で言う方言とかあるから、なかなかトラブルを消しきれないこともある

Excelでもよみたいとか要件があるならcsvかな
2021/04/29(木) 10:37:53.58ID:EFYWvXghd
>>487
エクセルで読ませたら先頭のゼロ消すやつとか日付のフォーマット変えるやつとか、ハイフンがついた数字を日付にするやつが現れがちなのですごく嫌かな。
2021/04/29(木) 10:49:23.57ID:PVZP3gNe0
目的の違うデータ形式を個々人で違う基準で評価してあーだこーだ言っても仕方ないのと違うか。

ただ。
json 形式の意味があるのか分からない深い階層を持つデータに対応するクラス作ってたときは本気でイヤになったけど。w
きちんと正規化して意味のない階層だとかを排除してくれるなら扱いやすい方式だとは思う。 < json
2021/04/29(木) 11:15:55.38ID:Ta5ufSky0
csvのrow/columnをjsonで表現できるが逆はできないからcsv⊂jsonだけど
大量のデータを扱うにはjsonは冗長だよな。
2021/04/29(木) 11:30:58.28ID:b5j8CNbM0
jsonで大量データだと、容量削減のために要素名を変数1文字とかやりだすしな
2021/04/29(木) 11:40:51.69ID:gug0J2oaa
CSVよりJSON Linesですわな
2021/04/29(木) 12:43:50.51ID:Gvkp+FCpM
>>491
そんなことするくらいなら圧縮するわ
冗長だから圧縮した状態同士での比較ならCSVと変わらん
2021/04/29(木) 12:52:51.92ID:IBkpf/CX0
>>493
デカイ階層データで気になるのは処理速度だから圧縮されると余計時間かかる
2021/04/29(木) 13:06:57.09ID:C0wDcO7Sa
シリアル化方法(CSVをシリアル化とは普通は呼ばない気がするけど便宜上)を選択する上での
評価基準としては、

(1) 可搬性
(2) 対応するデータ構造の自由度
(3) 変換速度
(4) バージョン耐性
(5) テキストとしての可読性(これが重要なケースはほとんどないと思うが...)

こんなとこかね。
CSVで評価できるのは(1)ぐらいなので積極的に使う理由はないね当たり前だけど
2021/04/29(木) 13:39:52.49ID:gug0J2oaa
エクセルおじさん用のデータ交換フォーマットと割り切ったほうがいい
2021/04/29(木) 13:47:05.06ID:MqlSo6MR0
>>494
展開時間かかる代わりにアクセス時間が相当減るから、変わらんか早くなるよ。
2021/04/29(木) 14:36:43.78ID:t8Qsv63f0
用途次第だけどjsonのままDBにつっこめばいいじゃん()
2021/04/29(木) 14:44:24.17ID:hnM2dBp9M
>>497
そんなのCPUとI/O次第としか言えん
2021/04/29(木) 15:11:48.04ID:IBkpf/CX0
>>498
え?どうやって?
2021/04/29(木) 15:19:29.90ID:IBkpf/CX0
結局、データベースに入れる運命なのに今の時代に階層データにするやつなんか頭悪いんだよ
2021/04/29(木) 15:28:12.72ID:zh8QYWZnM
いまどきはどんなDBMSでもjson形式のデータインポートくらい出来るだろ
LINQでクエリ走らせるだけだろ
2021/04/29(木) 15:32:29.05ID:Ta5ufSky0
>>496
じゃあjsonはテキストエディタおじさん用か。
2021/04/29(木) 16:10:49.54ID:1OxYHKr7d
最近のRDBMSだとjson型とかあったりするからな。
>>499
ライトはともかくリードは2021年だと殆どの場合で早いぞ。
2021/04/29(木) 16:16:56.06ID:4wXFV0waM
>>504
いや、リードが速きゃ圧縮してなくても速いわけだが…
2021/04/29(木) 16:48:57.18ID:t8Qsv63f0
>>500
もう言われてたけどjson型サポートされてるRDBMSもある。触ったことないのでパフォーマンスは知らぬ
mysql,PostgreSQLはカラムの型としてサポート済で、oracleとsqlserverは文字列型で格納して制約や関数でjsonとして扱う感じなのかな?
PostgreSQLだとjsonのキーに対してもインデックス作れるんだね。便利そう
2021/04/29(木) 17:02:11.90ID:IBkpf/CX0
激レアケースを例にあげて自分の失策を正当化するのは良くないぞ
今の時代にデータベースに入れにくいデータ構造にしたのは明らかにバカ
それがわからないならお前らも結局時代に対応できないんじゃんwぷw
2021/04/29(木) 18:39:45.09ID:Yt1JhF/90
1ビット脳の生活って楽しそうだよね
2021/04/29(木) 18:44:26.59ID:pn1fVmji0
>>507
rdbに突っ込むの前提ならcsvでも正規化されたテーブルが対象なんだから入れやすさなんかだけでは語れない。csvのデータは概ね正規化されたデータの結合と見れるので。
正規化·データの関連性を考えればjson·xmlの方が有利まである。
結局用途次第だと思うよ
2021/04/29(木) 19:28:20.05ID:MqlSo6MR0
>>505
10MBのデータ読んでメモリに乗せるのと、100KBに収まったデータを展開してメモリに乗せるの、だいたい後者のほうが早いぞ。
2021/04/29(木) 19:30:06.10ID:IBkpf/CX0
>>509
は?じゃあjsonそのまま入れてみろよ
2021/04/29(木) 19:32:01.32ID:gug0J2oaa
CSVはインポートで有利とか言ってる人が居るけど
ほとんどの場合インポート用CSVに整形する手間があるからトータルで損してるんだよね
2021/04/29(木) 19:36:37.76ID:IBkpf/CX0
>>509
そうやって実際にはできないことできるってなんで言っちゃうかな?
2021/04/29(木) 19:37:51.57ID:bhMl+eBD0
いつまでスレ違い無意味なマウント合戦続ける気?
2021/04/29(木) 19:45:35.14ID:MqlSo6MR0
>>511
MSSQLならJSONそのままインポートできるだろ。
https://docs.microsoft.com/ja-jp/sql/relational-databases/json/import-json-documents-into-sql-server?view=sql-server-ver15#parse-json-documents-into-rows-and-columns
2021/04/29(木) 19:47:56.90ID:h5Kbt4/jM
>>512
それはあるな
一応データエンジニア名乗ってて仕事でいろんなCSVをロードしてきたけど、貰ってきたCSVをそのまま取り込めるのは稀だわ
2021/04/29(木) 19:48:06.90ID:4VO5KYJUa
交通整理マンが出てこない時は(以下略

>>510
どんな圧縮率w
2021/04/29(木) 19:49:52.48ID:IBkpf/CX0
>>515
そんな誰も使ってない上に階層構造のjsonに使えるかどうかもわからん上に
さらに絶対仕事で使えないもの持ってきて必死だなw
採用実績あるの?ソレw
2021/04/29(木) 19:50:03.03ID:MqlSo6MR0
>>517
カラム名が長いなって思うようなデータだと、それぐらいの圧縮率になるぞ。
おまえやってみても無いだろ。
2021/04/29(木) 19:50:38.18ID:MqlSo6MR0
>>518
2016以降できるし、普通に使う。
2021/04/29(木) 19:52:56.86ID:IBkpf/CX0
>>520
絶対嘘だろw
2021/04/29(木) 19:53:21.85ID:4VO5KYJUa
>>512>>516
英語が世界共通語として機能しているのは
英語が優れた言語だからではない。

可搬性と技術としての優位性は完全に別問題。
2021/04/29(木) 19:53:32.90ID:pn1fVmji0
まぁすれ違いなんで最後で
>>513
そのままなんか入れないよ。
csvも正規化されたテーブルに分解·展開して入れる
jsonも正規化されたテーブルに分解·展開して入れる
データ構造の形で関連性が分かるのでこの点ではjsonのほうが有利
これはわかるでしょ?
まぁxml·jsonは言われている通りにdbmsがサポートしている場合があるから、その場合はそのまま入れればいいけども
2021/04/29(木) 19:53:48.66ID:MqlSo6MR0
>>521
なんで嘘つかないとならんのだ。

知らなかった事は、勉強になった、で済ませた方がいいんじゃないか?
2021/04/29(木) 19:55:35.85ID:IBkpf/CX0
>>523
じゃあ、できないじゃん

>>524
やってないってさw
嘘つきくん
2021/04/29(木) 20:00:29.06ID:MqlSo6MR0
>>525
俺は、やってるよ。
jqで突っ込む事もあるけど。
jsonで持ってるとnullと空文字の区別がついたりそこそこ便利なんよ。
2021/04/29(木) 20:01:40.70ID:IBkpf/CX0
じゃあ、jsonぶん投げて入れてみろよ
どこのテーブルのどのフィールドにどうやって入るかもわからんけどw
階層になってるデータをなw

なんでできないこと言っちゃうかなw
2021/04/29(木) 20:05:16.52ID:t8Qsv63f0
時空が歪んで20年くらい前の環境からレスしてるんだろ
火曜日のインターフェース不要さんと同じ人っぽいし
2021/04/29(木) 20:05:41.39ID:MqlSo6MR0
>>527
対応を設定する方法はこれな。
https://docs.microsoft.com/ja-jp/sql/relational-databases/json/convert-json-data-to-rows-and-columns-with-openjson-sql-server?view=sql-server-ver15#option-2---openjson-output-with-an-explicit-structure
2021/04/29(木) 20:09:44.80ID:IBkpf/CX0
データベース使うとインターフェースも出番ないよね
そういうテーブルないし
2021/04/29(木) 20:11:38.28ID:Yt1JhF/90
急加速してて笑
2021/04/29(木) 20:12:58.48ID:MqlSo6MR0
データとしての互換性は全く無いが、同様にinserted,updated,deleted列を持っているデータ、なんかはインターフェイス作っても良いんじゃないの?
2021/04/29(木) 20:38:56.88ID:CPrTMOXFM
>>510
だいたいって言われてもねぇw
圧縮ソフトによるけど1/100に圧縮できるソフトだとそれなりにCPU負荷もかかるだろうしね
2021/04/29(木) 20:50:11.97ID:qknGBKNj0
また圧縮沼に😅
2021/04/29(木) 20:51:47.22ID:nwdNubv1M
>>527
> どこのテーブルのどのフィールドにどうやって入るかもわからんけどw
> 階層になってるデータをなw
マジで知らないなら黙ってなよ…
1つのフィールドにjson形式でそのまま(内部的にはデシリアライズしてるだろうけど)入るんだよ
jsonをサポートしてるrdbmsはjsonの階層も含めて検索などができる
ただ、rdbmsによるだろうけど制約かけられないとかインデックス効かないとか色々制限あるので使い所はよく考えた方がいい
2021/04/29(木) 20:54:18.51ID:IBkpf/CX0
あっそう
2021/04/29(木) 21:09:28.12ID:PVZP3gNe0
あっそう w
2021/04/29(木) 21:10:59.33ID:JLw8VMIz0
流れあんま見てないけど何MBにもなるjson扱うって結構あり得る事なの?
GTA5も数十MBのjsonからのデータ読み込みがパフォーマンスのボトルネックになっててクラッカーが改善Mod作ったいうニュース見たけど、普通はそんな膨れ上がるならsqliteとか利用するもんじゃないのか?
2021/04/29(木) 21:22:08.52ID:MqlSo6MR0
>>538
あるよ。
ブラウザで3dモデル表示するときに使う形式にglTFってのあるんだけど、もろにデカいJSON。
540デフォルトの名無しさん (ワッチョイ 0e68-6Fjd)
垢版 |
2021/04/29(木) 23:20:12.08ID:QUExeogh0
プログラミングでファイル入出力を早くするにはやっぱり
良いGPUが必要なんでしょうか?
C#とGPUの関係を教えてください。
541デフォルトの名無しさん (ワッチョイ 0e68-6Fjd)
垢版 |
2021/04/29(木) 23:21:16.85ID:QUExeogh0
ちなみにGPUは欲しいですが3Dのゲームはしません(ゲーミングPCを購入予定ですが…)
プログラミングの良い環境を整えたいのでお勧めのがあれば教えてほしい
言語はもちろんC#です。
2021/04/29(木) 23:27:45.10ID:Gvkp+FCpM
そんなレベルならMac買っとくのが無難
なんでC#なのか知らないけどC#を選んだのもその調子じゃどうせまともな理由じゃないだろう
2021/04/29(木) 23:30:51.76ID:PtPwSG5y0
ファイル入出力はGPU関係ない
ストレージに左右される
HDDよりもSSDの方が速い

何のプログラム作るか知らないけど
WinFormsでアプリを作るならGPUは関係ない
WPFで作るならアプリの描画にGPUが使われる
2021/04/29(木) 23:40:25.95ID:DcwAc3waa
GPGPUってなんか暗号通貨のマイニング以外で聞かなくなっちゃた印象があるけど
C#から簡単に使えるライブラリとかあったりするん?
2021/04/29(木) 23:42:47.01ID:Eeg/SlYmM
>>538
あるだろうね
サーバーもクライアントもDB持ってるけどその間のやり取りはjsonでとか普通にあるから
ストレージとしての用途ならsqliteでもいいけど伝送手順として使われることも多いので
546デフォルトの名無しさん (ワッチョイ 0e68-6Fjd)
垢版 |
2021/04/29(木) 23:59:30.38ID:QUExeogh0
>>543
大学の課題でテキストを読み込んで文字列を探すプログラムを作ってます。
文字列を読み込むスピードをほぼ0秒にすると実行時間が短くてすむので
良いGPUはないかと思ってるんですがね。。。
547デフォルトの名無しさん (ワッチョイ 0e68-6Fjd)
垢版 |
2021/04/29(木) 23:59:59.65ID:QUExeogh0
ちな読み込むファイルの容量は100MB程度です。
2021/04/30(金) 00:14:03.55ID:ZjT67Y+80
折角回答してくれてる内容の1行目を声に出して10回読め
2021/04/30(金) 00:15:07.47ID:wixFV2dt0
>>546
GPU関係ないって書いてあるじゃん
重要なのはストレージとCPU
速ければ早いほどいいというだけ
550デフォルトの名無しさん (ワッチョイ 6768-TNk6)
垢版 |
2021/04/30(金) 00:19:41.24ID:f4OC/lzG0
ありがとうございます。
どんな高性能なPCでも時間は0秒にはならないってことですね?
俄かに信じがたいですが、早くなる方法ないでしょうか。
2021/04/30(金) 00:26:18.54ID:wixFV2dt0
ジューダス版のJohnny B Goodええで
2021/04/30(金) 00:26:29.50ID:wixFV2dt0
ごめんw
2021/04/30(金) 00:28:43.93ID:IafryiiR0
信じられないなら信じられる別の場所で聞けばいいんじゃないの。
2021/04/30(金) 00:35:48.48ID:ZjT67Y+80
> どんな高性能なPCでも時間は0秒にはならないってことですね?
C#全く関係ないスレチ

あと元の質問自体が「サッカーで速く走るにはいいスパイクが必要なんでしょうか。シュートとスパイクの関係を教えてください」みたいな謎文脈なので、
こちらはそっちの脳内でどんな解釈されてるのか、まるで見当が付かない
2021/04/30(金) 00:45:47.98ID:FVXE5M810
>>550
そういう根拠のない思い込みでこうなるはずなんて思考をしてたらプログラミングなんて理解できなくて詰むから、早いうちに矯正しろよ
まあ根っから性分だろうからもう手遅れだろうけど
2021/04/30(金) 00:55:52.99ID:1FoMz0PJ0
今jsonの話で忙しいのに話の腰を折る荒らしにしか見えない
2021/04/30(金) 01:50:11.84ID:OqlMgVmX0
なんだそれジョークか?
2021/04/30(金) 06:01:15.69ID:6G/EU7oZd
大学の課題でスペックの条件が必要なの?
無駄のないロジックを書くとか、そういうのが目標だったりしないのかな。
なんだったかな。C#だったらライブラリのメソッド一発で終わってしまう話だよ。
スペックが必要ならハードディスクじゃなくてSDとかの電子メモリにするだけ。
2021/04/30(金) 06:33:18.17ID:9CWg3MHlM
なんで相手するかなぁ…
2021/04/30(金) 07:21:05.92ID:c/yKDnhO0
うっわ
ファイル名変更ってgit上で削除→追加になるのかよ
なんでこんな仕様なんだ面倒くさい
2021/04/30(金) 08:20:45.76ID:/49R4AUmD
大学生が処理時間を0秒にできると考えてることが恐怖
2021/04/30(金) 08:31:59.95ID:hl1Q3MIe0
>>560
git mv
2021/04/30(金) 08:49:07.02ID:c/yKDnhO0
すまんVisualStudioスレじゃなかったな
2021/04/30(金) 09:24:19.33ID:QS3EuJUrM
まあgitはC#プログラマーでも使ってる人多いし、意味不明な大学の課題よりマシ
2021/04/30(金) 12:19:19.36ID:2B0L3g8/0
c# でもファイル名変更はFile.Moveメソッドだし、考え方は同じだと思うがな。
566デフォルトの名無しさん (ラクッペペ MM8f-HlUj)
垢版 |
2021/04/30(金) 12:37:03.29ID:clFaH4DRM
>>561
中2ぐらいなら許される?
2021/04/30(金) 13:53:37.33ID:IafryiiR0
真面目な話、設問の但し書きの部分を真に受けただけなんでは、とか思うのだけど。
「ただしファイルI/O などの処理時間は無視できる物とする」とかの。

大学の課題に取り組むのに私物のゲーミングPC を用意するって時点で意味が不明だもの。
私物の環境で設問をクリアできてもそれを持ち込むことなんて出来ないだろうし。
どこかを取り違えてたんだろ。
568デフォルトの名無しさん (ラクッペペ MM8f-HlUj)
垢版 |
2021/04/30(金) 14:02:57.22ID:clFaH4DRM
並列処理においてボトルネックになりやすいのがI/O
そこを改善しようと試みるのは良い
ただしこの場合C#とは関係ない話なのでスレタイすら読めない脳足らずという事になる
2021/04/30(金) 15:01:33.00ID:Fe1MTD+iM
いつまでその話題やるの?
2021/04/30(金) 17:03:31.63ID:OOQWIiqB0
最近はサーバーで、データベースのCPU が不足する事も多い
2021/04/30(金) 21:55:35.01ID:HehJ8LLK0
C#とJAVAを併用してるけど、C#の解説者のほうが深く理解していて簡潔に解説してるね。
JAVAはコピペで説明していて、動かないことも多々ある。採用人口が多いのに不思議
androidの仕様変更が原因のときもあるけど、C#は洗練されて理解しやすい。
つまりC#を扱う人はレベルが高いと感じる
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況