[過去ログ] ふらっと C#,C♯,C#(初心者用) Part154 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
72(1): (ワッチョイ 6f02-bukj) 2022/03/01(火)23:50 ID:gr6OEBT80(2/2) AAS
>>67
あくまでやり方の一例。
問題があるなら自分で何とかしてくれ。
73: (ワッチョイ 8a01-k1AF) 2022/03/02(水)00:28 ID:MSZ3LlYF0(1/2) AAS
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
74: (ワッチョイ 8a01-k1AF) 2022/03/02(水)00:34 ID:MSZ3LlYF0(2/2) AAS
ところで
Span<T>もしくはIEnumerable<T>のどちらかを受け取るジェネリックな関数って定義できる?
75: (ワッチョイ 6f02-8W3/) 2022/03/02(水)01:42 ID:O26kNIml0(1/2) AAS
そりゃ出来るやろ
LINQがおもっくそそれだし
76(1): (ワッチョイ ca01-+tM1) 2022/03/02(水)05:50 ID:+cCq037X0(1/3) AAS
>>72
いや、おかしいやり方示されても…
77: (ワッチョイ ca79-OOjg) 2022/03/02(水)07:20 ID:+1hBA4Bw0(1) AAS
PとP以外でフィルタしたリストをくっつけるのが判りやすいんかなあ
var PList = OBJList.FindAll(a => a.Name == "P");
var NPList = OBJList.FindAll(a => a.Name != "P");
PList.AddRange(NPList);
OBJList = PList;
78(2): (スッップ Sdea-PHKB) 2022/03/02(水)08:32 ID:Xi4FA93Ld(1) AAS
>>43 を読む限りの要件は
1. 比較の方法は「Name=="P"」だけで判断する
2. 安定ソートであること
3. 結果の返し方は(元のListを上書き変更/新規Listを作ってreturn)→質問者が何も考えてなさそうなので不明
質問者が現れて要件が確定しないとこれ以上進まんでしょ
79: (ワッチョイ ca01-+tM1) 2022/03/02(水)09:19 ID:+cCq037X0(2/3) AAS
>>78
> 3. 結果の返し方は(元のListを上書き変更/新規Listを作ってreturn)→質問者が何も考えてなさそうなので不明
元のListの上書きでしょ
それやろうとしてエラーになってるんだし
本当に必要な要件だったかどうかはわからんが
80: (テテンテンテン MM86-VJRT) 2022/03/02(水)10:03 ID:tBhSxL7sM(1) AAS
変にコレクション弄りまわさずに、Comparer<T>.CreateでカスタムComparer作ってSortかOrderByに食わせろ
81(1): (ワッチョイ 6f02-bukj) 2022/03/02(水)10:20 ID:6DUGQdfA0(1) AAS
>>76
あれに「P を先頭に持ってくる以外は元の順位を保持する」手順を追加すればいいだけだろうに。
宿題じゃないんだからそこまでは書かんよ。
82(1): (ワッチョイ 4a9b-d0o2) 2022/03/02(水)10:21 ID:KGds3ROy0(1) AAS
sort系持ち出してる人多いけど、P以外の順序は変えないってことは実現できるのか?
83: (ワッチョイ ca01-+tM1) 2022/03/02(水)10:39 ID:+cCq037X0(3/3) AAS
>>81
すでにいくつか正解出てるんだから無能のおかしいやり方なんて要らんよw
84: (JP 0H97-SxF4) 2022/03/02(水)11:42 ID:ZYz3XeEgH(1) AAS
>>47
あなたの書いた文が成り立たなくなるとか、そう言う理由でエラーが起きているわけではありません
独自解釈で理解した気分になってしまうと、何年続けても高卒・専門卒級プログラマーの域を出ません
エラーのメッセージが何で、なぜ今回の件に関係があるのか、しっかり突き詰めていかないと・・・・
85: (ワッチョイ 6f02-8W3/) 2022/03/02(水)18:12 ID:O26kNIml0(2/2) AAS
小難しく考えずにこれでいいだろ
OBJList = OBJList.Where(x => x.Name == "P")
.Concat(OBJList.Where(x => x.Name != "P"))
.ToList();
86: (テテンテンテン MM86-g6h8) 2022/03/02(水)22:35 ID:nWwg4aeaM(1) AAS
なんだかもうネタスレ見たいな感じだな
87: (ワッチョイ cb01-v/So) 2022/03/03(木)00:25 ID:dxyVfE5f0(1) AAS
大喜利かな?
88: (ワッチョイ de63-v7rK) 2022/03/03(木)08:59 ID:o+Rr4hsu0(1/2) AAS
つまんねー大喜利だな
どこぞの黄色が並んでるみたい
89: (スップ Sdea-8W3/) 2022/03/03(木)09:21 ID:jSBR5AQpd(1) AAS
初心者用スレなんだからわかる人から見れば大喜利に見えるでしょ
つまらないこといいなさんな
90: (ワッチョイ ff2f-65e0) 2022/03/03(木)17:21 ID:AMDtBRAN0(1/2) AAS
>>78,82
もとの要件がちゃんと示されてないから、
安定ソートが必要かどうかは微妙だと思うぞ
P,I,Nの順にソートされるようにすればいいだけじゃないのか
まあ俺ならソート用に順位表すような何かを別途作るがな
91(1): (ブーイモ MM4f-Xv4c) 2022/03/03(木)17:31 ID:QcxixHpuM(1) AAS
わざわざunstableな方法を選ぶメリットあるの?
92(1): (ワッチョイ ff2f-65e0) 2022/03/03(木)18:02 ID:AMDtBRAN0(2/2) AAS
>>91
List<T>.Sort が不安定ソートだからな
OBJクラスにIComparable<OBJ>実装しとけば、OBJList.Sortだけで完了する
パフォーマンスとかまあいろいろあるけど、設計としてはそれが正しい気がする
93: (ブーイモ MM76-Xv4c) 2022/03/03(木)18:17 ID:QKnbgpbEM(1) AAS
>>92
今回のはOBJクラスに直接実装するIComparableとは別に比較関数用意したほうがいいでしょ
それに比較関数書くよりも簡単に書けてパフォーマンスもいいstableなやり方がすでにいくつか上がってる
94(1): (ワッチョイ 6f02-8W3/) 2022/03/03(木)18:35 ID:harl8Fl70(1) AAS
もうこの流れ見て質問者逃げてるだろ
95: (アウアウウー Sa2f-n9nK) 2022/03/03(木)18:55 ID:uKQKiz/ua(1) AAS
質問者なんてお題提供の存在でしかないからな
質問者放置はいつものことだろw
96: (アウグロ MMdf-BANU) 2022/03/03(木)19:02 ID:FQovZrSRM(1) AAS
たかがソートで満身創痍で質問者もびっくりしてると思う
97: (ワッチョイ ca01-+tM1) 2022/03/03(木)19:12 ID:bgg8zGG60(1) AAS
>>94
逃げてると言うかそれなりに答え出てるからもう見てないかもね
98(1): (ワッチョイ de63-PAoo) 2022/03/03(木)19:44 ID:o+Rr4hsu0(2/2) AAS
そういや質問者そっちのけでバトるのもお得意だったよな
99: (ワッチョイ af78-g6h8) 2022/03/03(木)20:37 ID:NDgh0LAU0(1) AAS
ID真っ赤にしてマウント取りに行くのは見物だよね
100: (ワッチョイ 6ede-r4h5) 2022/03/04(金)09:38 ID:TJSFQkSB0(1) AAS
>>98
このスレのいいところの一つ
101: (ワッチョイ b301-oL1e) 2022/03/04(金)18:47 ID:N5q/Azrd0(1) AAS
自称世界最速のソートアルゴリズムを作ってた奴もこのスレだっけ?
上下前次1-新書関写板覧索設栞歴
あと 901 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.025s