[表示 : 全て 最新50 1-99 101- 201- 2ch.scのread.cgiへ]
Update time : 10/26 17:42 / Filesize : 74 KB / Number-of Response : 273
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん [2019/10/07(月) 20:16:17.93 ID:9eyAES450.net]
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part144
https://mevius.5ch.net/test/read.cgi/tech/1563258983/
■関連スレ
C#, C♯, C#相談室 Part95
https://mevius.5ch.net/test/read.cgi/tech/1508168482/
■コードを貼る場合は↓を使いましょう。
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/index
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries
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

237 名前:デフォルトの名無しさん mailto:sage [2019/10/23(水) 21:40:38.12 ID:F0j44unH0.net]
System.Collections.ConcurrentにConcurrentListはないようですが、スレッドセーフなListはSyncronizedCollectionを使っておけということなんでしょうか?

238 名前:デフォルトの名無しさん mailto:sage [2019/10/23(水) 22:41:24.14 ID:MpJkuZYiM.net]
>>237
ConcurrentListが無いのは、Listは外部ロックを使わない並行処理との相性が悪いからだろう
追加と参照のみならいいが、削除や途中への挿入があるとインデックスがほとんど意味を持たなくなってしまう
インデックスが指してる要素が他のスレッドによる変更の影響で突然コロコロ変わったら使い物にならないのは容易に想像できるだろ?
SynchronizedCollectionを使うとかそういう話じゃなくて、Listインターフェイスの設計が本質的に並行処理と相容れないんだよ

239 名前:デフォルトの名無しさん mailto:sage [2019/10/24(木) 08:41:52.53 ID:vvI6h2Gc0.net]
あるソフト使ってて、これ使いたいなって機能があるんだけど、なんて検索かけたらいいのか分からないので知っている人いたら教えてください。
WindowsフォームアプリでVisualStudio2015で開発しています。


[欲しい機能]
例えばWindow内が横3段に分かれいるとすると

------------△---------------

みたいに境界が表示されててそこをクリックすると部分的に隠したり、表示させたりできる機能



今作ってるアプリが監視系で画面上に常駐するので、出来るだけWindow内の邪魔なボタンとかは隠しておきたいのでこの機能が欲しいです。
知ってる方いたらよろしくお願いします。

240 名前:デフォルトの名無しさん mailto:sage [2019/10/24(木) 09:07:13.70 ID:1uX6E7L9M.net]
>>238
> 追加と参照のみならいいが、削除や途中への挿入があるとインデックスがほとんど意味を持たなくなってしまう
それマルチスレッドじゃなくても起きるだろ

241 名前:デフォルトの名無しさん mailto:sage [2019/10/24(木) 09:13:17.80 ID:EafWDMiv0.net]
>>239
折りたたみできるpanel とかそんな感じ?

242 名前:デフォルトの名無しさん mailto:sage [2019/10/24(木) 09:20:52.19 ID:/Cd29/CTM.net]
>>240
程度問題だよ
マルチスレッドなら尚更問題になるのは明らかだろ
結局、インデックスに依存する一連の操作の単位で外部ロックを取る必要があるから、concurrentである意味がない

243 名前:デフォルトの名無しさん mailto:sage [2019/10/24(木) 09:51:08.72 ID:1uX6E7L9M.net]
>>242
バカなの?
インデックス使って途中挿入削除されたら問題なるのはマルチスレッドには関係ない
そもそも挿入削除してるのにインデックスで処理するのがおかしいと気づけ

244 名前:デフォルトの名無しさん mailto:sage [2019/10/24(木) 10:07:31.16 ID:/Cd29/CTM.net]
>>243
シングルスレッドでの同期処理ならプログラマが意図しないタイミングで変更が加えられる可能性は少ないだろう
そもそも途中挿入しないならConcurrentBagでいいよね
自分で答え出てるじゃん

245 名前:デフォルトの名無しさん mailto:sage [2019/10/24(木) 10:16:49.04 ID:1uX6E7L9M.net]
本質を理解できない馬鹿に説明しても無駄なことがよくわかるなw



246 名前:デフォルトの名無しさん mailto:sage [2019/10/24(木) 10:31:37.86 ID:/Cd29/CTM.net]
同意するわw

247 名前:デフォルトの名無しさん mailto:sage [2019/10/24(木) 10:50:43.90 ID:8vd5prrh0.net]
>>239
SplitContainer

248 名前:デフォルトの名無しさん [2019/10/24(木) 10:58:17.20 ID:xs21harXa.net]
>>239
XPの時代のエクスプローラーのタスクパネルみたいなUIだと思うけど
たぶん標準では存在しない

折り畳みできるコンテナを自分で作れば、それを別のPanelの中に入れ子にして
AnchorとDockをうまく設定すれば似たようなことは一応できると思う。

PanelじゃなくてFlowLayoutPanelを使ってもいいかもしれないが、
たぶんかえって使いづらくなりそう

249 名前:デフォルトの名無しさん mailto:sage [2019/10/24(木) 10:58:42.47 ID:ey5VOEQr0.net]
>>241
そうそう折りたたみって言葉がしっくりきます。


試しに「折りたたみ panel」あたりで検索したらやりたい事が出来そうなサイトが見つけられました。
SplitContainerとクリックイベントを使ってどうにか出来そうです。

また、境界部分にも三角形△などの目印を付けるやり方が載ってるサイトも見つかりました。


いいヒントになりました、ありがとうございます^^

250 名前:デフォルトの名無しさん mailto:sage [2019/10/24(木) 10:59:35.93 ID:mB9UhJoj0.net]
>>247
>>248
ありがとうございます!

251 名前:デフォルトの名無しさん [2019/10/24(木) 11:57:49.13 ID:ABhN6CSmF.net]
>>239
Collapse
Accordion

252 名前:デフォルトの名無しさん mailto:sage [2019/10/24(木) 21:14:55.46 ID:00cf/jHw0.net]
頭に0個の参照って表示されてる関数が無数にあるんですが、これ要するに全く使われてないってことですよね
全部消してしまいたい……と思ったのですが実行する中でその関数が呼び出されるような可能性ってあったりするんでしょうか

253 名前:デフォルトの名無しさん mailto:sage [2019/10/24(木) 21:35:06.52 ID:VqWeglU2r.net]
リフレクションとかで呼べば参照カウントされないんじゃない

254 名前:デフォルトの名無しさん mailto:sage [2019/10/24(木) 21:45:06.56 ID:B+sGouls0.net]
なんかのライブラリとかで、publicで公開してるやつとかか?

255 名前:デフォルトの名無しさん mailto:sage [2019/10/24(木) 22:06:02.66 ID:Eph2jaDU0.net]
複数のパネルをドラッグドロップできるようにしたんだけど
マウスが別のパネルに重なったときにパネルがいれかわってしまうんだけど
これを防ぐにはどうしたらいい?



256 名前:デフォルトの名無しさん mailto:sage [2019/10/24(木) 22:14:48.43 ID:yaJ1dO+n0.net]
>>255
「パネル」をドラッグドロップしている?
一番上または必要なパネル以外のドラッグドロップを受け付けないようにしたら

257 名前:デフォルトの名無しさん mailto:sage [2019/10/24(木) 22:17:00.79 ID:WLXJ5XGy0.net]
>>255
マウスダウンで「掴む」じゃん
マウスドラッグで「移動」するじゃん
マウスアップで「置く」じゃん

ドラッグ中の処理は移動なのにどうしてマウスダウンで掴んだやつ
以外が動いちゃうん?

258 名前:デフォルトの名無しさん mailto:sage [2019/10/24(木) 23:01:06.74 ID:yaJ1dO+n0.net]
マウスがパネルに触れた時点でフォーカス変わったりしているとかだろ
最低限の動きするミニマムコード使って検証する方がここで聞くより解決しやすいと思うがね
そこでわからなかったらそのミニマムコード出してまた質問したらここの人も答えやすい

259 名前:デフォルトの名無しさん mailto:sage [2019/10/24(木) 23:02:09.24 ID:00cf/jHw0.net]
>>253
あーなるほどでもそんな上等な書き方出来る人が作ったわけじゃないからなさそうですね

>>254
他の似たようなソフト作る時に使ったソースコードそのまま組み込んだっぽいですね見た感じ

260 名前:元99 mailto:sage [2019/10/25(金) 14:57:42.75 ID:V0o5IG+qM.net]
>>252
まあ普通はコメントにするよね

261 名前:デフォルトの名無しさん [2019/10/25(金) 22:28:16.88 ID:7rgagi6Z0.net]
List<(string, int)> list;があった場合、listの中からlist.item2が最大の要素(string, int)を得るにはどうすればいいのですか?
var l = list.Max(x=>x.Item2);みたいにしたいのですが、int型が帰ってきてしまいます

262 名前:デフォルトの名無しさん mailto:sage [2019/10/25(金) 23:07:56.88 ID:GWerdevt0.net]
OrderByDescending.FirstOrDefault

263 名前:デフォルトの名無しさん mailto:sage [2019/10/25(金) 23:14:44.18 ID:5pdqBhsBa.net]
>>262だと計算量のオーダーが増える
先に Max で最大のItem2 (maxItem2)を求めておいて list.First(x => x.Item2 == maxItem2) のほうがマシ

264 名前:デフォルトの名無しさん mailto:sage [2019/10/25(金) 23:23:22.26 ID:6061P7ry0.net]
何度も呼ぶときウゼーから関数にしろよ

265 名前:デフォルトの名無しさん mailto:sage [2019/10/25(金) 23:42:07.16 ID:5pdqBhsBa.net]
経験上、こういう汎用的すぎるユーティリティ関数を自作して多用するのはお勧めしない
個人開発ならいいけど、多人数での開発になると新しいメンバーとの間で記述方法に差異を有む原因になり、結果的に負債化していくんだよ
ダサくてもこういうのは毎回ベタに書いたほうがいい



266 名前:デフォルトの名無しさん mailto:sage [2019/10/25(金) 23:48:20.10 ID:FLPxIKHC0.net]
最大値持ってるタプルが複数あったら?

267 名前:デフォルトの名無しさん mailto:sage [2019/10/25(金) 23:50:57.19 ID:j4bjfcPpd.net]
>>266
逆にどうして欲しいの?

268 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 00:25:28.36 ID:ZMkO6rZZ0.net]
>>267
知らんがな

269 名前:デフォルトの名無しさん [2019/10/26(土) 00:58:09.61 ID:rff7tW+R0.net]
>>262-265
どの方法も一見正攻法ではないように見えるため、人に教えてもらわないことには勇気を出して書けませんでした
ありがとうございます

270 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 12:56:29.17 ID:D4rlG2Pr0.net]
>>265
計算量のオーダー気にしてんだろ?
他の奴が違う書き方して増えたら大変じゃん
あ、どうでもよかった?

271 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 13:18:11.26 ID:sfokePbj0.net]
素直に
int max = list.Max(tuple => tuple.Item2);
var maxValueItems = list.Where(tuple => tuple.Item2 == max);
でいいじゃん
int に重複がない前提なら Dictionary 化した方が捗る

272 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 14:40:36.29 ID:+20I9h0L0.net]
なんかいいロガー知らない?
3つのテキストに警告・注意・情報がそれぞれ安全に吐けるロガー






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<74KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef