[過去ログ]
ふらっと C#,C♯,C#(初心者用) Part154 (1002レス)
ふらっと C#,C♯,C#(初心者用) Part154 http://mevius.5ch.net/test/read.cgi/tech/1644416019/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
48: デフォルトの名無しさん (ワッチョイ ca24-yy09) [sage] 2022/03/01(火) 11:27:38.32 ID: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); } http://mevius.5ch.net/test/read.cgi/tech/1644416019/48
49: デフォルトの名無しさん (ワッチョイ ca24-yy09) [sage] 2022/03/01(火) 11:38:43.21 ID:Dq7cA1DN0 >>48 そういえばint i = 1からでよかったな http://mevius.5ch.net/test/read.cgi/tech/1644416019/49
54: デフォルトの名無しさん (ワッチョイ ca24-yy09) [sage] 2022/03/01(火) 13:31:44.32 ID: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作成より早く済むと思うが http://mevius.5ch.net/test/read.cgi/tech/1644416019/54
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
1.576s*