[過去ログ] ふらっと C#,C♯,C#(初心者用) Part154 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
78(2): デフォルトの名無しさん (スッップ Sdea-PHKB) [sage] 2022/03/02(水) 08:32:07.28 ID:Xi4FA93Ld(1) AAS
>>4343(2): デフォルトの名無しさん (ワッチョイ 06e9-jC74) [] 2022/02/28(月) 09:21:55.74 ID:+yCudJYj0(1) AAS
下記の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 });
}
を読む限りの要件は
1. 比較の方法は「Name=="P"」だけで判断する
2. 安定ソートであること
3. 結果の返し方は(元のListを上書き変更/新規Listを作ってreturn)→質問者が何も考えてなさそうなので不明
質問者が現れて要件が確定しないとこれ以上進まんでしょ
105: デフォルトの名無しさん (ワッチョイ 4b2d-4NGs) [sage] 2022/03/05(土) 16:32:28.28 ID:JM4So5Oz0(1) AAS
>>103103(1): デフォルトの名無しさん (ワッチョイ 6bd2-pJVr) [sage] 2022/03/05(土) 16:19:30.03 ID:E2o+9AFP0(1) AAS
文字列を数値扱いで比較するのが闇だからなぁ
正の整数しかないならできんこともないけど
マイナスを考慮するか?
"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" //小数扱いはしない
結構のところ数値考慮の比較は複数パターン用意してオプションで切り替えなきゃいけない
どこを数値扱いするかの仕様もどっかに書いとかないといけない
正の整数だけ考慮した比較と辞書順の比較の切り替えすら考え出すと辛いから
結局辞書順しかサポートしたくない
バージョンは正の数値以外含まれないものとしてSystem.Versionクラスを使えば
機械処理したいならこのクラスで扱える仕様にしておくのが無難だ
140: デフォルトの名無しさん (ワッチョイ ab01-Ff7g) [] 2022/03/11(金) 20:41:00.28 ID:u82a29l50(1) AAS
学ぶにはコミュニティにお布施しないといけないからなぁ
しかも姫プを始める女が居ると技術系のガチ勢が愛想つかして出ていくから益々過疎化するという
263(2): デフォルトの名無しさん (アウアウウー Sa5d-580B) [sage] 2022/03/22(火) 03:27:22.28 ID:Fi74risNa(1/2) AAS
難しく考えることない。この程度の見分け方で十分だろ
class A : IDispose ←宣言を見たときにIDispose派生ならアンマネージド
A a = 〜
a. ←「.」を打ち込んだ時にDisposeが表示されたらアンマネージド
using (var a = new 〜) ←usingで囲んでエラー出たらマネージド
314: デフォルトの名無しさん (ワッチョイ b1d2-JyYd) [sage] 2022/03/27(日) 22:32:37.28 ID:K7MWSPEs0(1) AAS
C++では機械学習と3Dレンダリングでの並列化を目的にfloat16_tとかいう概念が生産されたりしてるからfloat自体は過去の遺物ってほどでもない
C#だと実行速度を気にするよりも開発を楽にすることを重視することが多いからdoubleオンリーでいいのは確か
360: デフォルトの名無しさん (ブーイモ MMad-QNkB) [sage] 2022/03/31(木) 12:43:51.28 ID:/3uX6C5lM(1) AAS
Disposeはデストラクタとは違うんだけどな
455: デフォルトの名無しさん (アウグロ MM7a-fyPK) [sage] 2022/04/13(水) 07:08:42.28 ID:Gu4WFashM(1) AAS
c++やるときは型によって処理が変わるのであったほうが便利
621: デフォルトの名無しさん (テテンテンテン MMe6-j2Xi) [sage] 2022/05/11(水) 12:18:59.28 ID:hFfrzzscM(1) AAS
Unityでよいのでは
652: デフォルトの名無しさん (ワッチョイ f101-wXST) [] 2022/05/28(土) 12:24:53.28 ID:qp7uj3Un0(2/2) AAS
ありがとうございます、うまくいきました
結局内部で一旦バッファにコピーしてるみたいですね
788: デフォルトの名無しさん (ワッチョイ 1563-i/7j) [sage] 2022/06/09(木) 12:07:27.28 ID:NcaDVjc60(1) AAS
おかしいのはロジックじゃなくて奴隷根性やな
792(2): デフォルトの名無しさん (ワッチョイ a968-pvNj) [] 2022/06/09(木) 16:10:53.28 ID:d7vTvGkG0(1) AAS
クラス名を以下のような関数に渡したい時に
void printName(string name) {}
呼び出し側で
printName(this.ToString());
と記載していますが、毎回書くのが煩わしいです。
どこからの呼び出しでも同じ記述なので、簡略化する方法はないですか。
Cのマクロ定義ではこんな風にできると思いますがこれに近いことをcsでしたいです。
#define PRINT_NAME() printName(this.ToString())
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.035s