!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part153
https://mevius.5ch.net/test/read.cgi/tech/1639403601/
■関連スレ
C#, C♯, C#相談室 Part96
https://mevius.5ch.net/test/read.cgi/tech/1639965805/
■コードを貼る場合は↓を使いましょう。
https://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/
https://referencesource.microsoft.com/
https://source.dot.net/
・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
探検
ふらっと C#,C♯,C#(初心者用) Part154
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 0fe3-wadS)
2022/02/09(水) 23:13:39.45ID:1A90hyai08デフォルトの名無しさん (ワッチョイ a701-YGx7)
2022/02/16(水) 10:02:32.42ID:xaORQRwj0 小細工せずにシンプルに富豪的プログラミングすりゃええやん
9デフォルトの名無しさん (テテンテンテン MMde-zyG0)
2022/02/16(水) 10:20:29.58ID:FqYQ+dJNM ソース忘れたけどジャグ配列の方がアクセス速いらしい
10デフォルトの名無しさん (テテンテンテン MMde-zyG0)
2022/02/16(水) 11:20:29.58ID:FqYQ+dJNM すまん嘘ついたわ
シーケンシャルはジャグのが速いけど、ランダムだと逆らしい
普通に考えると >>7 の言うようにジャグは配列のヘッダ分余分に使うと思うけど、プリミティブ型の配列は最適化で何か消し飛びそうな気もするから、正直あんま変わらなさそうな気がする
シーケンシャルはジャグのが速いけど、ランダムだと逆らしい
普通に考えると >>7 の言うようにジャグは配列のヘッダ分余分に使うと思うけど、プリミティブ型の配列は最適化で何か消し飛びそうな気もするから、正直あんま変わらなさそうな気がする
11デフォルトの名無しさん (ブーイモ MM0e-/t+S)
2022/02/16(水) 14:03:09.07ID:RtFWZL7LM 全部詰め込むならジャグ配列のほうが容量は食う
多次元配列はint[M x N]で確保されて計算経由でアクセス
速度は環境や使い方によって違うので自分の使い方で計測したほうがいい
多次元配列はint[M x N]で確保されて計算経由でアクセス
速度は環境や使い方によって違うので自分の使い方で計測したほうがいい
12デフォルトの名無しさん (ワッチョイ efae-Luj5)
2022/02/16(水) 15:12:12.97ID:t9owAYRA0 もっと楽観的に取り組もうぜ
13デフォルトの名無しさん (スフッ Sd32-VdZC)
2022/02/17(木) 10:51:36.86ID:GVuWfQald 正直いって、メモリや速度より組みやすさで選びたいよね。
性能を求めるなら、Rustとかの方が良いんでしょ?
性能を求めるなら、Rustとかの方が良いんでしょ?
14デフォルトの名無しさん (ワッチョイ 3779-H8zH)
2022/02/17(木) 12:14:06.04ID:JwXvZXiU0 え?それ、実際に計測していってんの?
15デフォルトの名無しさん (テテンテンテン MMde-zyG0)
2022/02/17(木) 12:26:13.49ID:eZZ7a2UPM 後々の保守考えると、実際のとこ見やすさと組みやすさが最重要だと思う
16デフォルトの名無しさん (ワッチョイ bfbd-oz1W)
2022/02/21(月) 21:06:11.37ID:8NF9kOJ70 VBAからのC ♯に挑戦中です。
visual studio使ってるんですが、予測変換やらその他諸々便利な事が多く感動しております。。
質問なんですが、VBAでやる場合は印刷=Excel sheetでみたいな固定概念なんですがこっちの場合って印刷出力は物によるとは思うんですが、どんな感じですか?調べると、print document??なるもので頭でイメージして印刷用のベースを自作して作るのですか?
印刷内容は至ってシンプルな文字列やら数値です。
visual studio使ってるんですが、予測変換やらその他諸々便利な事が多く感動しております。。
質問なんですが、VBAでやる場合は印刷=Excel sheetでみたいな固定概念なんですがこっちの場合って印刷出力は物によるとは思うんですが、どんな感じですか?調べると、print document??なるもので頭でイメージして印刷用のベースを自作して作るのですか?
印刷内容は至ってシンプルな文字列やら数値です。
17デフォルトの名無しさん (ワッチョイ 83d2-vGHd)
2022/02/21(月) 21:40:50.41ID:dmBIFY6O0 そもそもプリンタから紙を出すということ自体発想がなかったわ
ライブラリ使うにしても
入力の文字列やら数値から印刷用のレイアウトを起こさなきゃいけないし、
プリンタに印刷データを投げなきゃいけない
簡単に印刷と言うけど結構やることは多い
ライブラリ使うにしても
入力の文字列やら数値から印刷用のレイアウトを起こさなきゃいけないし、
プリンタに印刷データを投げなきゃいけない
簡単に印刷と言うけど結構やることは多い
18デフォルトの名無しさん (アウアウウー Sae7-8E80)
2022/02/21(月) 21:44:55.46ID:i5JttRhRa プリンタは画像描画みたいなもの
縦横ピクセルサイズ決めて、そこのxy座標どこにどのくらいの大きさで文字を描く〜ってイメージ
印刷プレビューも使えるから適当にググって試せばすぐわかるよ
縦横ピクセルサイズ決めて、そこのxy座標どこにどのくらいの大きさで文字を描く〜ってイメージ
印刷プレビューも使えるから適当にググって試せばすぐわかるよ
19デフォルトの名無しさん (ワッチョイ ff01-bFjU)
2022/02/21(月) 21:51:01.85ID:Gf4lGfIx0 >>16
イメージは1ページの白紙に自分でしこしこテキストとか図形を書く感じ
(数値は自分で文字列にして書く)
とりあえずこのあたりのサンプルをビルドしてみては?
https://docs.microsoft.com/ja-jp/dotnet/api/system.drawing.printing.printdocument.print
イメージは1ページの白紙に自分でしこしこテキストとか図形を書く感じ
(数値は自分で文字列にして書く)
とりあえずこのあたりのサンプルをビルドしてみては?
https://docs.microsoft.com/ja-jp/dotnet/api/system.drawing.printing.printdocument.print
20デフォルトの名無しさん (ワッチョイ bfbd-oz1W)
2022/02/21(月) 23:35:22.77ID:8NF9kOJ70 なるほど、やはりしこしこ描いてくんですね。やる事多そうですね。
勉強も兼ねてやってみます。
ありがとうございます!
勉強も兼ねてやってみます。
ありがとうございます!
21デフォルトの名無しさん (テテンテンテン MM7f-lT30)
2022/02/22(火) 10:46:16.00ID:vNlU0s1vM 会社で買えるならアクレポが楽だけどな
PDFでいいなら他の手もあるけど
PDFでいいなら他の手もあるけど
22デフォルトの名無しさん (ワッチョイ ff6a-nAeH)
2022/02/22(火) 10:54:46.02ID:Q9cfD2FD0 Crystal Reports for VSは未だに.Net Frameworkのみの対応なんだっけ?
23デフォルトの名無しさん (ワッチョイ a301-qD7Y)
2022/02/23(水) 06:06:54.77ID:8XUT1BDs0 そんなん使ってる環境で.net core対応かどうかとか気にするの?
24デフォルトの名無しさん (ワッチョイ 83ad-QVqR)
2022/02/23(水) 10:26:26.53ID:EjF360bu0 現時点で .NET core に対応する必要あるの?
25デフォルトの名無しさん (ワッチョイ 331a-XH6J)
2022/02/23(水) 10:52:19.37ID:IFX4MVN+0 「現時点でES6に対応する必要あるの?」
って言ってたJavaScripterの末路を知らんのか
って言ってたJavaScripterの末路を知らんのか
26デフォルトの名無しさん (ワッチョイ cfcf-9yE7)
2022/02/23(水) 11:02:58.12ID:rcGZ+xyY0 対応する必要が出てきてから移行したよ
27デフォルトの名無しさん (ワッチョイ ffad-N0zA)
2022/02/23(水) 11:37:00.39ID:6huhQPG70 今から対応を考えるなら.NETの方にしとけ
28デフォルトの名無しさん (ワッチョイ 93e3-9yE7)
2022/02/23(水) 11:53:14.46ID:pfP6MzJI0 未だに.NET Framework2.0が動き続けている俺社には耳が痛い
あと6年もサポート残っているんだからいい加減移行考えろよと
あと6年もサポート残っているんだからいい加減移行考えろよと
29デフォルトの名無しさん (ワッチョイ ff02-9L8B)
2022/02/23(水) 12:31:01.73ID:n4QLtIZ70 XPでも使ってるのか
現行のOSで2.0はかえって難しいだろ
現行のOSで2.0はかえって難しいだろ
30デフォルトの名無しさん (ワッチョイ b302-mA98)
2022/02/23(水) 13:00:38.62ID:a6rWCkrR0 WPFで帳票もいけるみたいだぞ
https://qiita.com/cyberCatvb/items/1bf86e75b8e5738d432f
https://qiita.com/cyberCatvb/items/1bf86e75b8e5738d432f
31デフォルトの名無しさん (アウアウウー Sae7-8E80)
2022/02/23(水) 13:46:28.74ID:mlk9UOBoa 今の.netと数年前の.net coreは別物になってる
それに引き換えframeworkは変化が少ない。c++のmfcみたいに細々と生きて切り捨てられることもないだろ
どっちが保守楽かって考えたら・・・
それに引き換えframeworkは変化が少ない。c++のmfcみたいに細々と生きて切り捨てられることもないだろ
どっちが保守楽かって考えたら・・・
32デフォルトの名無しさん (ワッチョイ b302-mA98)
2022/02/23(水) 14:00:40.20ID:a6rWCkrR0 規模がでかい社内システムだと、中々移行に踏み切るのも難しい場合はあるな
部分部分で少しづつ置き換えられるならいいんだが、色々連動してたりすると下手に手が出せん
部分部分で少しづつ置き換えられるならいいんだが、色々連動してたりすると下手に手が出せん
33デフォルトの名無しさん (ワッチョイ 83ad-UVhd)
2022/02/23(水) 14:44:30.90ID:EjF360bu0 .NET6への移行(移植)はライブラリの対応待ちだな
34デフォルトの名無しさん (ワッチョイ ca24-yy09)
2022/02/26(土) 20:05:44.30ID:UUNvHcAJ0 いやWindows標準搭載待ちだろ
.NET6ですら標準化予定なしって聞いてからはC#自体書く気なくなったわ
.NET6ですら標準化予定なしって聞いてからはC#自体書く気なくなったわ
35デフォルトの名無しさん (ワッチョイ ca02-Y5l0)
2022/02/26(土) 20:41:04.47ID:e5W/1zqv0 COMコンポーネントが作れなくなってるので移行しづらい
36デフォルトの名無しさん (ワッチョイ c3ad-M/90)
2022/02/27(日) 10:04:44.98ID:VN1UC9sN0 >>34
まずそれな
まずそれな
37デフォルトの名無しさん (ワッチョイ 6f02-8W3/)
2022/02/27(日) 10:20:11.38ID:FLYW632f038デフォルトの名無しさん (ワッチョイ cae6-ei6B)
2022/02/27(日) 17:20:47.20ID:hLXeworC0 WinFormsのTextBoxでKeyPressイベントが発生した時、キャレットの位置が行頭なのかどうかを判定したいのですが、
if(TextBox1.Text[TextBox1.SelectionStart].ToString() == Environment.NewLine)
では判定出来ないようです。
判定する方法を教えてください。
if(TextBox1.Text[TextBox1.SelectionStart].ToString() == Environment.NewLine)
では判定出来ないようです。
判定する方法を教えてください。
39デフォルトの名無しさん (アウアウウー Sa2f-n9nK)
2022/02/27(日) 17:33:25.94ID:6fl1teDTa [TextBox1.SelectionStart]だと行頭だから
[TextBox1.SelectionStart-1]になるんじゃない?
[TextBox1.SelectionStart-1]になるんじゃない?
40デフォルトの名無しさん (ワッチョイ cae6-ei6B)
2022/02/27(日) 17:59:32.72ID:hLXeworC0 >>39
ダメでした・・・。
ダメでした・・・。
41デフォルトの名無しさん (アウアウウー Sa2f-n9nK)
2022/02/27(日) 18:07:12.14ID:6fl1teDTa 一文字しかとってないからNewlineじゃなくて"\n"かな
42デフォルトの名無しさん (ワッチョイ 8379-BANU)
2022/02/27(日) 19:11:31.38ID:ZUZKwXZL0 DOBONみたいに地道にやったほうがよくね?
https://dobon.net/vb/dotnet/control/tbgetcaretposition.html
https://dobon.net/vb/dotnet/control/tbgetcaretposition.html
43デフォルトの名無しさん (ワッチョイ 06e9-jC74)
2022/02/28(月) 09:21:55.74ID:+yCudJYj0 下記のOBJListの並びを「I,N,P,P」から「P,P,I,N」のようにPが先頭に来るよう入れ替えしたく。
OBJListの要素をforeachで回してPを見つけたら先頭に移動する等試したのですが、
処理中にOBJListの順番を変えるなと怒られてしまいました。どのようにすれば実現できるでしょうか?
よろしくお願いします。
class OBJ
{
public string Name { get; set; }
public int No { get; set; }
}
private void narabekae()
{
List<OBJ> OBJList = new List<OBJ>();
OBJList.Add(new OBJ { Name = "I", No = 1 });
OBJList.Add(new OBJ { Name = "N", No = 1 });
OBJList.Add(new OBJ { Name = "P", No = 1 });
OBJList.Add(new OBJ { Name = "P", No = 2 });
}
OBJListの要素をforeachで回してPを見つけたら先頭に移動する等試したのですが、
処理中にOBJListの順番を変えるなと怒られてしまいました。どのようにすれば実現できるでしょうか?
よろしくお願いします。
class OBJ
{
public string Name { get; set; }
public int No { get; set; }
}
private void narabekae()
{
List<OBJ> OBJList = new List<OBJ>();
OBJList.Add(new OBJ { Name = "I", No = 1 });
OBJList.Add(new OBJ { Name = "N", No = 1 });
OBJList.Add(new OBJ { Name = "P", No = 1 });
OBJList.Add(new OBJ { Name = "P", No = 2 });
}
44デフォルトの名無しさん (スッップ Sdea-PHKB)
2022/02/28(月) 09:39:44.52ID:+7QZaSxQd OBJListを使いまわさずに新規のListを作る
Enumerable.OrderByとか
Enumerable.OrderByとか
45デフォルトの名無しさん (アウアウウー Sa2f-n9nK)
2022/02/28(月) 13:06:35.56ID:UX0HcLa3a そういうのはforで後ろから回して、削除、挿入
46デフォルトの名無しさん (テテンテンテン MM86-g6h8)
2022/02/28(月) 17:42:35.91ID:XSUMuMfaM47デフォルトの名無しさん (ワッチョイ 06e9-jC74)
2022/02/28(月) 19:07:11.88ID:Dbx5MQPW0 >>46
foreach中に順番変えられたらforeachが成り立たないのだろうなとは思いました。
頂いたアドバイスからPを別のリストに移動してドッキングしても
邪道では無さそうなので、そうしようと考えています。
foreach中に順番変えられたらforeachが成り立たないのだろうなとは思いました。
頂いたアドバイスからPを別のリストに移動してドッキングしても
邪道では無さそうなので、そうしようと考えています。
48デフォルトの名無しさん (ワッチョイ ca24-yy09)
2022/03/01(火) 11:27:38.32ID:Dq7cA1DN0 それだけのために一時バッファとしてもう一個リスト作るのはスマートじゃない
Remove&先頭挿入をペアで行う場合は後方の順番は狂わないので原始的にforで回せばいい
for (int i = 0, end = obj_list.Count; i < end; ++i) {
var obj = obj_list[i];
if (obj.Name != "P") continue;
obj_list.RemoveAt(i);
obj_list.Insert(0, obj);
}
Remove&先頭挿入をペアで行う場合は後方の順番は狂わないので原始的にforで回せばいい
for (int i = 0, end = obj_list.Count; i < end; ++i) {
var obj = obj_list[i];
if (obj.Name != "P") continue;
obj_list.RemoveAt(i);
obj_list.Insert(0, obj);
}
49デフォルトの名無しさん (ワッチョイ ca24-yy09)
2022/03/01(火) 11:38:43.21ID:Dq7cA1DN0 >>48
そういえばint i = 1からでよかったな
そういえばint i = 1からでよかったな
50デフォルトの名無しさん (ワッチョイ 8a01-k1AF)
2022/03/01(火) 12:59:14.06ID:haFp+aqn051デフォルトの名無しさん (スップ Sd8a-8W3/)
2022/03/01(火) 13:00:38.80ID:qybIiuxnd >>45が自分もいいきがするけど何も考えずにやると移動したPのデータの順番がおかしくなりそうにも思えたから
自分はPの移動用のリストを用意してもとのリストを後ろから参照して最後にもとのリストに挿入がいいかなと思った
自分はPの移動用のリストを用意してもとのリストを後ろから参照して最後にもとのリストに挿入がいいかなと思った
52デフォルトの名無しさん (ラクッペペ MM86-cxam)
2022/03/01(火) 13:03:47.38ID:RNWoyucIM List.Sort が出てこないけどなんか欠点でもあるの?
53デフォルトの名無しさん (アウアウウー Sa2f-n9nK)
2022/03/01(火) 13:14:03.84ID:FuAp7249a 新しくリストを作るって以上に処理が多くなる
54デフォルトの名無しさん (ワッチョイ ca24-yy09)
2022/03/01(火) 13:31:44.32ID:Dq7cA1DN0 >>50
要素数がめちゃくちゃ多い場合はそうだな
RemoveAtで発生する後方要素の前方詰めが今回は完全に不要だから一回分多く無駄な処理が挟まってるからな
.NET5以上ならCollectionsMarshal.AsSpanを利用して
obj_span.Slice(0, i).CopyTo(obj_span.Slice(1, i));
obj_span[0] = obj;
とかに変えればO(n)処理は1回だけで済むからどんなパターンでも新規List作成より早く済むと思うが
要素数がめちゃくちゃ多い場合はそうだな
RemoveAtで発生する後方要素の前方詰めが今回は完全に不要だから一回分多く無駄な処理が挟まってるからな
.NET5以上ならCollectionsMarshal.AsSpanを利用して
obj_span.Slice(0, i).CopyTo(obj_span.Slice(1, i));
obj_span[0] = obj;
とかに変えればO(n)処理は1回だけで済むからどんなパターンでも新規List作成より早く済むと思うが
55デフォルトの名無しさん (アウアウウー Sa2f-n9nK)
2022/03/01(火) 13:50:15.40ID:FuAp7249a 要素が少ないときは新しくリスト作る方がremove/insertよりも数倍速い
ただ新しくリスト作るのはメモリを倍食うから、要素数が多くなったら(物理メモリよりも多くなったら)どうだか
ただ新しくリスト作るのはメモリを倍食うから、要素数が多くなったら(物理メモリよりも多くなったら)どうだか
56デフォルトの名無しさん (ワッチョイ ff2f-65e0)
2022/03/01(火) 14:23:11.54ID:V9EqT+vw0 つかそもそも、並べ替えたListそのものを保存する必要があるのかとか
初めから必要な順番で保存できないかとか考えたほうが良い気がする
初めから必要な順番で保存できないかとか考えたほうが良い気がする
57デフォルトの名無しさん (スップ Sd8a-8W3/)
2022/03/01(火) 14:28:49.61ID:qybIiuxnd そもそもでいえば並べ替えのAdd時点でPを前に入れたいってわかっていれば
それなりの実装もあるんじゃねと思ったりしているから
質問の内容だけだとやりかたなんて色々あるよね
それなりの実装もあるんじゃねと思ったりしているから
質問の内容だけだとやりかたなんて色々あるよね
58デフォルトの名無しさん (ワッチョイ ca79-OOjg)
2022/03/01(火) 18:06:27.21ID:fDW5QBJr0 糞みたいな方法しか出てきてないけど普通に考えると
1) 元のリストからPを抜き出しつつ、Pだけ抜き出したリストを作る
2) Pだけのリストの後ろに元のリストをマージする
あとはList<>で気の利いた方法がないか調べる
1) 元のリストからPを抜き出しつつ、Pだけ抜き出したリストを作る
2) Pだけのリストの後ろに元のリストをマージする
あとはList<>で気の利いた方法がないか調べる
59デフォルトの名無しさん (ワッチョイ 4f17-ibFl)
2022/03/01(火) 18:38:32.31ID:SjVwjYfg060デフォルトの名無しさん (ワッチョイ 6b2d-jC74)
2022/03/01(火) 18:55:33.25ID:xQ0S3wJN061デフォルトの名無しさん (ワッチョイ ca79-OOjg)
2022/03/01(火) 19:17:57.35ID:fDW5QBJr0 めんどくせえやっちゃこれでいいだろ
OBJList.Sort((a,b) => (a.Name != b.Name) ? (a.Name != "P") ? (b.Name != "P") ? 0 : 1 : -1 : 0);
OBJList.Sort((a,b) => (a.Name != b.Name) ? (a.Name != "P") ? (b.Name != "P") ? 0 : 1 : -1 : 0);
62デフォルトの名無しさん (オイコラミネオ MMeb-g6h8)
2022/03/01(火) 20:17:38.37ID:lFABJG9JM >>61
これは初心者には呪文にしか見えないだろw
これは初心者には呪文にしか見えないだろw
63デフォルトの名無しさん (オイコラミネオ MMeb-g6h8)
2022/03/01(火) 20:18:29.71ID:lFABJG9JM 訂正
誰にも呪文にしか見えない
誰にも呪文にしか見えない
64デフォルトの名無しさん (ワッチョイ 6f5f-vePS)
2022/03/01(火) 20:58:33.05ID:pQFC2fuH0 これでプルリク出されたらレビュイー殺してしまうかもしれん
65デフォルトの名無しさん (ワッチョイ ca79-OOjg)
2022/03/01(火) 20:59:34.53ID:fDW5QBJr0 そういやListのソートは不安定だからNoをインデックスに見立てれば安定ソート
OBJList.Sort((a,b) => (a.Name != b.Name) ? (a.Name != "P") ? (b.Name != "P") ? (a.No - b.No) : 1 : -1 : (a.No - b.No));
LINQのOrderByは元から安定ソート
OBJList = OBJList.OrderBy(a => a.Name != "P").ToList();
OBJList.Sort((a,b) => (a.Name != b.Name) ? (a.Name != "P") ? (b.Name != "P") ? (a.No - b.No) : 1 : -1 : (a.No - b.No));
LINQのOrderByは元から安定ソート
OBJList = OBJList.OrderBy(a => a.Name != "P").ToList();
66デフォルトの名無しさん (ワッチョイ 6f02-bukj)
2022/03/01(火) 21:09:10.33ID:gr6OEBT80 var weight = new Dictionary() { { "P", 1 }, { "I", 2 }, { "N", 3 } };
var result = OBJList.OrderBy( a => weight[ a.Name ] ).ToList();
の方が好み。エラーチェックは無視。
var result = OBJList.OrderBy( a => weight[ a.Name ] ).ToList();
の方が好み。エラーチェックは無視。
67デフォルトの名無しさん (ワッチョイ ca01-lzB5)
2022/03/01(火) 22:16:34.56ID:FpudFrD40 >>66
それ NIPP ⇒ PPIN になるんじゃね?
それ NIPP ⇒ PPIN になるんじゃね?
68デフォルトの名無しさん (ワッチョイ 8379-BANU)
2022/03/01(火) 22:17:08.92ID:BpvMrVad0 ワンループで
P用参照リストと
それ以外参照リスト作って
最後にP用を前にしてドッキング
P用参照リストと
それ以外参照リスト作って
最後にP用を前にしてドッキング
69デフォルトの名無しさん (ワッチョイ 6336-8W3/)
2022/03/01(火) 22:42:39.70ID:kklKOfnn0 datagridviewの垂直スクロールバーについて教えてください。
datagridviewを作成した後、
DataGridViewRow[] list = new DataGridViewRow[50];
(listの中身作成)
dataGridView1.Rows.AddRange(list);
のようにしてdataGridView1にデータを表示させようとすると縦スクロールバーが上手く表示されずフリーズ状態になってしまいます。
dataGridViewを作成した後に縦スクロールバーが出るまでdataGridView1.Rows.Addを繰り返して縦スクロールバーを出した後に
上記を実行した場合は問題なく表示されます。
縦スクロールバーを出すために無意味なデータをdataGridViewに表示させるといった不必要な処理を行いたくないのですが、
データを投入しなくても縦スクロールバーを出す方法、あるいは
dataGridView1.Rows.AddRange(list);
を実行してもフリーズしない方法はありますでしょうか?
datagridviewを作成した後、
DataGridViewRow[] list = new DataGridViewRow[50];
(listの中身作成)
dataGridView1.Rows.AddRange(list);
のようにしてdataGridView1にデータを表示させようとすると縦スクロールバーが上手く表示されずフリーズ状態になってしまいます。
dataGridViewを作成した後に縦スクロールバーが出るまでdataGridView1.Rows.Addを繰り返して縦スクロールバーを出した後に
上記を実行した場合は問題なく表示されます。
縦スクロールバーを出すために無意味なデータをdataGridViewに表示させるといった不必要な処理を行いたくないのですが、
データを投入しなくても縦スクロールバーを出す方法、あるいは
dataGridView1.Rows.AddRange(list);
を実行してもフリーズしない方法はありますでしょうか?
70デフォルトの名無しさん (ワッチョイ 6f02-8W3/)
2022/03/01(火) 22:53:13.83ID:i/a33NyP071デフォルトの名無しさん (ワッチョイ 6336-8W3/)
2022/03/01(火) 23:36:39.38ID:kklKOfnn0 ありがとうございます!
これでできました!
【C#】DataGridViewで編集不可やスクロールバーを常に表示する | NOARTS
https://noarts.net/archives/2703
これでできました!
【C#】DataGridViewで編集不可やスクロールバーを常に表示する | NOARTS
https://noarts.net/archives/2703
72デフォルトの名無しさん (ワッチョイ 6f02-bukj)
2022/03/01(火) 23:50:02.54ID:gr6OEBT8073デフォルトの名無しさん (ワッチョイ 8a01-k1AF)
2022/03/02(水) 00:28:20.93ID:MSZ3LlYF0 AsSpan使ったらどうなるか興味あったからベンチしてみたら
1000件くらいだと一番高速だけど結局O(n^2)なので1~2万件でList<T>.Sortとかと逆転した
1万件程度なら余程最適化したい場合を除いてどれを選んでも性能的には問題なさそう
1. List<T>.Sort
2. Enumerable<T>.OrderBy
3. AsSpan + For Loop
4. RemoveAt + Insert + For Loop
5. Partition + Concat
1000件くらいだと一番高速だけど結局O(n^2)なので1~2万件でList<T>.Sortとかと逆転した
1万件程度なら余程最適化したい場合を除いてどれを選んでも性能的には問題なさそう
1. List<T>.Sort
2. Enumerable<T>.OrderBy
3. AsSpan + For Loop
4. RemoveAt + Insert + For Loop
5. Partition + Concat
74デフォルトの名無しさん (ワッチョイ 8a01-k1AF)
2022/03/02(水) 00:34:33.47ID:MSZ3LlYF0 ところで
Span<T>もしくはIEnumerable<T>のどちらかを受け取るジェネリックな関数って定義できる?
Span<T>もしくはIEnumerable<T>のどちらかを受け取るジェネリックな関数って定義できる?
75デフォルトの名無しさん (ワッチョイ 6f02-8W3/)
2022/03/02(水) 01:42:56.13ID:O26kNIml0 そりゃ出来るやろ
LINQがおもっくそそれだし
LINQがおもっくそそれだし
76デフォルトの名無しさん (ワッチョイ ca01-+tM1)
2022/03/02(水) 05:50:05.45ID:+cCq037X0 >>72
いや、おかしいやり方示されても…
いや、おかしいやり方示されても…
77デフォルトの名無しさん (ワッチョイ ca79-OOjg)
2022/03/02(水) 07:20:58.81ID:+1hBA4Bw0 PとP以外でフィルタしたリストをくっつけるのが判りやすいんかなあ
var PList = OBJList.FindAll(a => a.Name == "P");
var NPList = OBJList.FindAll(a => a.Name != "P");
PList.AddRange(NPList);
OBJList = PList;
var PList = OBJList.FindAll(a => a.Name == "P");
var NPList = OBJList.FindAll(a => a.Name != "P");
PList.AddRange(NPList);
OBJList = PList;
78デフォルトの名無しさん (スッップ Sdea-PHKB)
2022/03/02(水) 08:32:07.28ID:Xi4FA93Ld >>43 を読む限りの要件は
1. 比較の方法は「Name=="P"」だけで判断する
2. 安定ソートであること
3. 結果の返し方は(元のListを上書き変更/新規Listを作ってreturn)→質問者が何も考えてなさそうなので不明
質問者が現れて要件が確定しないとこれ以上進まんでしょ
1. 比較の方法は「Name=="P"」だけで判断する
2. 安定ソートであること
3. 結果の返し方は(元のListを上書き変更/新規Listを作ってreturn)→質問者が何も考えてなさそうなので不明
質問者が現れて要件が確定しないとこれ以上進まんでしょ
79デフォルトの名無しさん (ワッチョイ ca01-+tM1)
2022/03/02(水) 09:19:13.48ID:+cCq037X0 >>78
> 3. 結果の返し方は(元のListを上書き変更/新規Listを作ってreturn)→質問者が何も考えてなさそうなので不明
元のListの上書きでしょ
それやろうとしてエラーになってるんだし
本当に必要な要件だったかどうかはわからんが
> 3. 結果の返し方は(元のListを上書き変更/新規Listを作ってreturn)→質問者が何も考えてなさそうなので不明
元のListの上書きでしょ
それやろうとしてエラーになってるんだし
本当に必要な要件だったかどうかはわからんが
80デフォルトの名無しさん (テテンテンテン MM86-VJRT)
2022/03/02(水) 10:03:13.08ID:tBhSxL7sM 変にコレクション弄りまわさずに、Comparer<T>.CreateでカスタムComparer作ってSortかOrderByに食わせろ
81デフォルトの名無しさん (ワッチョイ 6f02-bukj)
2022/03/02(水) 10:20:09.79ID:6DUGQdfA082デフォルトの名無しさん (ワッチョイ 4a9b-d0o2)
2022/03/02(水) 10:21:00.91ID:KGds3ROy0 sort系持ち出してる人多いけど、P以外の順序は変えないってことは実現できるのか?
83デフォルトの名無しさん (ワッチョイ ca01-+tM1)
2022/03/02(水) 10:39:16.12ID:+cCq037X0 >>81
すでにいくつか正解出てるんだから無能のおかしいやり方なんて要らんよw
すでにいくつか正解出てるんだから無能のおかしいやり方なんて要らんよw
84デフォルトの名無しさん (JP 0H97-SxF4)
2022/03/02(水) 11:42:18.09ID:ZYz3XeEgH >>47
あなたの書いた文が成り立たなくなるとか、そう言う理由でエラーが起きているわけではありません
独自解釈で理解した気分になってしまうと、何年続けても高卒・専門卒級プログラマーの域を出ません
エラーのメッセージが何で、なぜ今回の件に関係があるのか、しっかり突き詰めていかないと・・・・
あなたの書いた文が成り立たなくなるとか、そう言う理由でエラーが起きているわけではありません
独自解釈で理解した気分になってしまうと、何年続けても高卒・専門卒級プログラマーの域を出ません
エラーのメッセージが何で、なぜ今回の件に関係があるのか、しっかり突き詰めていかないと・・・・
85デフォルトの名無しさん (ワッチョイ 6f02-8W3/)
2022/03/02(水) 18:12:53.89ID:O26kNIml0 小難しく考えずにこれでいいだろ
OBJList = OBJList.Where(x => x.Name == "P")
.Concat(OBJList.Where(x => x.Name != "P"))
.ToList();
OBJList = OBJList.Where(x => x.Name == "P")
.Concat(OBJList.Where(x => x.Name != "P"))
.ToList();
86デフォルトの名無しさん (テテンテンテン MM86-g6h8)
2022/03/02(水) 22:35:58.10ID:nWwg4aeaM なんだかもうネタスレ見たいな感じだな
87デフォルトの名無しさん (ワッチョイ cb01-v/So)
2022/03/03(木) 00:25:46.12ID:dxyVfE5f0 大喜利かな?
88デフォルトの名無しさん (ワッチョイ de63-v7rK)
2022/03/03(木) 08:59:19.53ID:o+Rr4hsu0 つまんねー大喜利だな
どこぞの黄色が並んでるみたい
どこぞの黄色が並んでるみたい
89デフォルトの名無しさん (スップ Sdea-8W3/)
2022/03/03(木) 09:21:31.01ID:jSBR5AQpd 初心者用スレなんだからわかる人から見れば大喜利に見えるでしょ
つまらないこといいなさんな
つまらないこといいなさんな
90デフォルトの名無しさん (ワッチョイ ff2f-65e0)
2022/03/03(木) 17:21:59.36ID:AMDtBRAN0 >>78,82
もとの要件がちゃんと示されてないから、
安定ソートが必要かどうかは微妙だと思うぞ
P,I,Nの順にソートされるようにすればいいだけじゃないのか
まあ俺ならソート用に順位表すような何かを別途作るがな
もとの要件がちゃんと示されてないから、
安定ソートが必要かどうかは微妙だと思うぞ
P,I,Nの順にソートされるようにすればいいだけじゃないのか
まあ俺ならソート用に順位表すような何かを別途作るがな
91デフォルトの名無しさん (ブーイモ MM4f-Xv4c)
2022/03/03(木) 17:31:12.89ID:QcxixHpuM わざわざunstableな方法を選ぶメリットあるの?
92デフォルトの名無しさん (ワッチョイ ff2f-65e0)
2022/03/03(木) 18:02:58.80ID:AMDtBRAN0 >>91
List<T>.Sort が不安定ソートだからな
OBJクラスにIComparable<OBJ>実装しとけば、OBJList.Sortだけで完了する
パフォーマンスとかまあいろいろあるけど、設計としてはそれが正しい気がする
List<T>.Sort が不安定ソートだからな
OBJクラスにIComparable<OBJ>実装しとけば、OBJList.Sortだけで完了する
パフォーマンスとかまあいろいろあるけど、設計としてはそれが正しい気がする
93デフォルトの名無しさん (ブーイモ MM76-Xv4c)
2022/03/03(木) 18:17:27.98ID:QKnbgpbEM >>92
今回のはOBJクラスに直接実装するIComparableとは別に比較関数用意したほうがいいでしょ
それに比較関数書くよりも簡単に書けてパフォーマンスもいいstableなやり方がすでにいくつか上がってる
今回のはOBJクラスに直接実装するIComparableとは別に比較関数用意したほうがいいでしょ
それに比較関数書くよりも簡単に書けてパフォーマンスもいいstableなやり方がすでにいくつか上がってる
94デフォルトの名無しさん (ワッチョイ 6f02-8W3/)
2022/03/03(木) 18:35:14.37ID:harl8Fl70 もうこの流れ見て質問者逃げてるだろ
95デフォルトの名無しさん (アウアウウー Sa2f-n9nK)
2022/03/03(木) 18:55:04.85ID:uKQKiz/ua 質問者なんてお題提供の存在でしかないからな
質問者放置はいつものことだろw
質問者放置はいつものことだろw
96デフォルトの名無しさん (アウグロ MMdf-BANU)
2022/03/03(木) 19:02:52.70ID:FQovZrSRM たかがソートで満身創痍で質問者もびっくりしてると思う
97デフォルトの名無しさん (ワッチョイ ca01-+tM1)
2022/03/03(木) 19:12:44.11ID:bgg8zGG60 >>94
逃げてると言うかそれなりに答え出てるからもう見てないかもね
逃げてると言うかそれなりに答え出てるからもう見てないかもね
98デフォルトの名無しさん (ワッチョイ de63-PAoo)
2022/03/03(木) 19:44:36.41ID:o+Rr4hsu0 そういや質問者そっちのけでバトるのもお得意だったよな
99デフォルトの名無しさん (ワッチョイ af78-g6h8)
2022/03/03(木) 20:37:55.07ID:NDgh0LAU0 ID真っ赤にしてマウント取りに行くのは見物だよね
100デフォルトの名無しさん (ワッチョイ 6ede-r4h5)
2022/03/04(金) 09:38:06.30ID:TJSFQkSB0 >>98
このスレのいいところの一つ
このスレのいいところの一つ
101デフォルトの名無しさん (ワッチョイ b301-oL1e)
2022/03/04(金) 18:47:08.78ID:N5q/Azrd0 自称世界最速のソートアルゴリズムを作ってた奴もこのスレだっけ?
102デフォルトの名無しさん (ワッチョイ ef10-0yeF)
2022/03/05(土) 14:00:23.89ID:U93o6YuQ0 どちらかというとアリゴリズムというよりは自然なソート?というのでよく悩むよね
具体的には1,10,11,2,3,4,5,6,7,8,9となってしまうのを
1,2,3,4,5,6,7,8,9,10,11としたい(実際には数字だけではなくアルファベットなどが混入する)
具体的には1,10,11,2,3,4,5,6,7,8,9となってしまうのを
1,2,3,4,5,6,7,8,9,10,11としたい(実際には数字だけではなくアルファベットなどが混入する)
103デフォルトの名無しさん (ワッチョイ 6bd2-pJVr)
2022/03/05(土) 16:19:30.03ID:E2o+9AFP0 文字列を数値扱いで比較するのが闇だからなぁ
正の整数しかないならできんこともないけど
マイナスを考慮するか?
"x=-3" < "x=-2"
"x=+3" > "x=+2"
小数扱いをするか?
"ver3.2" > "ver3.14"
"ver3.2.x" > "ver3.14.x" //これでいいのか?
"ver3.2.1" > "ver3.14.1" //これでいいのか?
"verx.2.1" < "verx.14.1" //これでいいのか?
"p3_2" < "p3_14" //小数扱いはしない
結構のところ数値考慮の比較は複数パターン用意してオプションで切り替えなきゃいけない
どこを数値扱いするかの仕様もどっかに書いとかないといけない
正の整数だけ考慮した比較と辞書順の比較の切り替えすら考え出すと辛いから
結局辞書順しかサポートしたくない
正の整数しかないならできんこともないけど
マイナスを考慮するか?
"x=-3" < "x=-2"
"x=+3" > "x=+2"
小数扱いをするか?
"ver3.2" > "ver3.14"
"ver3.2.x" > "ver3.14.x" //これでいいのか?
"ver3.2.1" > "ver3.14.1" //これでいいのか?
"verx.2.1" < "verx.14.1" //これでいいのか?
"p3_2" < "p3_14" //小数扱いはしない
結構のところ数値考慮の比較は複数パターン用意してオプションで切り替えなきゃいけない
どこを数値扱いするかの仕様もどっかに書いとかないといけない
正の整数だけ考慮した比較と辞書順の比較の切り替えすら考え出すと辛いから
結局辞書順しかサポートしたくない
104デフォルトの名無しさん (ブーイモ MM7f-5+bU)
2022/03/05(土) 16:30:49.93ID:Tp7uE+H9M >>102
それがまさにアルゴリズムじゃないかw
それがまさにアルゴリズムじゃないかw
105デフォルトの名無しさん (ワッチョイ 4b2d-4NGs)
2022/03/05(土) 16:32:28.28ID:JM4So5Oz0106デフォルトの名無しさん (ワッチョイ 9f01-S4HU)
2022/03/05(土) 16:53:10.76ID:GzcJYiRD0 お絵描きソフトを作りたいのですがそういうグラフィック系についての参考書みたいなのって知ってますか?
あと初心者はこれ読めって本あれば教えて下さい
あと初心者はこれ読めって本あれば教えて下さい
107デフォルトの名無しさん (ワッチョイ 9f01-S4HU)
2022/03/05(土) 16:53:30.21ID:GzcJYiRD0 趣味でやろうとしてます
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【前橋市】小川晶前市長とラブホテルで打ち合わせをした54歳男性職員を停職処分 今月末で依願退職するという [シャチ★]
- 【おこめ券】鈴木農相 米価維持の意図「一切ない」★2 [ぐれ★]
- 【埼玉】「無免許で高速道路で事故」トラックの追突事故で10代男性死亡 無免許過失運転致死の疑いでトルコ国籍の男(22)逮捕 戸田市 [ぐれ★]
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★6 [七波羅探題★]
- 広島・廿日市、おこめ券配布せず 全市民に3000円現金給付へ [どどん★]
- 【警視庁】走行中の電車で女性に露出した下半身押しつけたか 無職の男(46)逮捕「チャンスがあればいつでもやる」 [nita★]
- 【実況】博衣こよりのえちえちチーズケーキを仕込み(雑談あり)🧪★2
- じゃあ何券だったら、日本人は満足したんだよ [452836546]
- 【速報】1ポンド210円で日英GDP逆転(残り1.5円)...世界6位の経済規模に転落 [237216734]
- 悪気はないのに、不意に相手を傷付けてしまう事ってあるんだな
- 朝日新聞記者「中国軍のレーダー照射はこめかみに銃を突きつけられたのと同じ。僕なら反撃して撃墜してる」高市 [931948549]
- 僕が未だに紙の単行本を集めてる漫画が「ご注文はうさぎですか?」「ゆるゆり」「大室家」「邪神ちゃんドロップキック」なんだが
