[過去ログ] ふらっと C#,C♯,C#(初心者用) Part154 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
566: (アウアウウー Saab-QTrz) 2022/05/06(金)18:37 ID:Pyn2b+Aza(1/4) AAS
どうせX優先でソートしたいってことだろ。この程度理解してやれよ
Array.Sort(aa, (a, b) =>
{
if (a.X == b.X)
return a.Y - b.Y;
return a.X - b.X;
});
みたいな感じにすればいい。ただしfloatだからこのままだとエラーになる +1 -1 0 をreturnするように
567: (スッップ Sdff-LGrz) 2022/05/06(金)21:18 ID:TntjE3ffd(1) AAS
PointFでそれはおかしいだろ
浮動小数点数同士を単純に==で比較するのは殆どの場合において誤り
568: (ワッチョイ 7fcf-hGrh) 2022/05/06(金)21:30 ID:NMYx4eAj0(1/2) AAS
この場合は==で問題ないように思うが。
569
(1): (アウアウウー Saab-QTrz) 2022/05/06(金)21:53 ID:Pyn2b+Aza(2/4) AAS
==だと例えば座標(1,1)と(1,2)のどっちが先になるか分からない
570
(1): (ワッチョイ df79-7Nr3) 2022/05/06(金)22:09 ID:TUkwoEaL0(1) AAS
誤差が出るような値の比較は両辺を正規化しないとダメ
571
(1): (アウアウウー Saab-nj6J) 2022/05/06(金)22:23 ID:8H68TfoTa(1) AAS
>>569
昇順だと仮定して(1,2),(1,1)の順になる理由をあげてくれ
572: (ワッチョイ 0702-hGrh) 2022/05/06(金)22:27 ID:AMfb+Q8N0(1/2) AAS
前提が示されていない以上、別にそこまで考慮する必要なくね
丸めが必要なら、前処理しておけばいい
573: (ワッチョイ 7fcf-hGrh) 2022/05/06(金)22:35 ID:NMYx4eAj0(2/2) AAS
>>570
ここで言ってる「正規化」って浮動小数表現上の正規化/非正規化とは別だよな。
ふつう高級言語レベルで意識する必要はないと思うが。
574
(2): (アウアウウー Saab-QTrz) 2022/05/06(金)22:36 ID:Pyn2b+Aza(3/4) AAS
>>571
もちろんジャスト(1,2)と(1,1)だったら逆転しないよ・・・
(1-δ,2),(1+δ,1)のように誤差があるとき逆転する
575: (アウアウウー Saab-nj6J) 2022/05/06(金)22:39 ID:9Z37knUna(1) AAS
>>574
いきなり後出し条件出されて笑う
576: (ワッチョイ 872f-U5op) 2022/05/06(金)22:45 ID:YHAWRmCh0(1/2) AAS
つかLinqで
.OrderBy(p => p.X).ThenBy(p => p.Y)
で良いんじゃないか
577: (ワッチョイ 872f-U5op) [sate] 2022/05/06(金)22:54 ID:YHAWRmCh0(2/2) AAS
>>574
それは1じゃないものを1と書くからそう見えるだけで
1-δ,<1+δなのだから
実際には逆転などしていないと思うんだがな
578
(1): (アウアウウー Saab-QTrz) 2022/05/06(金)22:56 ID:Pyn2b+Aza(4/4) AAS
floatの話なんだから後出しでもなんでもなく当たり前じゃん。そのくらい察してくれよ
579: (アウアウウー Saab-nj6J) 2022/05/06(金)23:10 ID:/xoCkKVPa(1) AAS
>>578
で、それの何がまずいんだ?
表示の話とごっちゃにしてるだけだろ
580: (ワッチョイ 7fbb-QBNI) 2022/05/06(金)23:23 ID:vot/okCP0(1) AAS
誤差だろうがなんだろうが厳密なソートなら==で充分だろ
質問者がどこまで考えてるかわかんねーのにお前らが推測でグダグダ言ってたって不毛なだけ
581: (ワッチョイ 0702-hGrh) 2022/05/06(金)23:24 ID:AMfb+Q8N0(2/2) AAS
ほんとそれ
582
(1): (ワッチョイ 6a02-xR/W) 2022/05/07(土)02:59 ID:w70N7Moq0(1/2) AAS
ソートの話で炎上してるみたいだけどさ
そうっとしておいてやれよ
583
(2): (ワッチョイ 33ad-jtXU) 2022/05/07(土)08:22 ID:5zcnkXK50(1) AAS
差分が閾値内であればイコールでよくね?
584: (アウアウウー Sa1f-cwrN) 2022/05/07(土)08:44 ID:knFaNk5Ia(1) AAS
>>583
それは要件次第だから判断できるのは質問者だけ
585: (ワッチョイ becf-HkNE) 2022/05/07(土)09:19 ID:kBo/c16T0(1) AAS
>>583
そこに範囲を持たせてしまうと順序が逆転する可能性があるから正しいソートにならないだろ。
586: (ワッチョイ 9f02-HkNE) 2022/05/07(土)11:13 ID:313oEtJ80(1) AAS
まーだやってんのか
質問者の聞いてるのはソートの仕方だけで、どういうデータを扱うかすら提示されてないんだから
そこに誤差ガー範囲ガーだの考慮する必要はない
587
(1): (ワッチョイ 6a02-xR/W) 2022/05/07(土)11:59 ID:w70N7Moq0(2/2) AAS
ソートの話で炎上してるみたいだけどさ
そおっとしておいてやれよ
588: (ワッチョイ 26bc-/AKQ) 2022/05/07(土)12:41 ID:JO0+xntF0(1) AAS
お。ちょっと改良したのか、そのダジャレ。w
589: (ワッチョイ 4ede-0BEs) 2022/05/07(土)15:40 ID:jfGefHE20(1) AAS
>>582
>>587
590: (スップ Sd2a-uM1l) 2022/05/07(土)18:18 ID:yxSWV8Wsd(1) AAS
>>527
>>528
無事GW中に出来ました!感謝です。ありがとうございます。
591
(1): (ワッチョイ dabd-pKa3) 2022/05/08(日)00:36 ID:19hEeZmX0(1/4) AAS
VisualStudio 2019の<Nullable>enable</Nullable> 環境で、変数のツールチップにString型の時だけ「ここではxxxはnullではありません」と表示されるんだけど
これって最新の2022では直っていたりしますか。

画像リンク


おかしいのはツールチップだけで、nullableの判定は問題ない感じ。
longとかDateTimeとか色々試したけど、String型だけで表示された。なんで。
592: (オイコラミネオ MM9b-1CQB) 2022/05/08(日)00:41 ID:9MG0SRykM(1/4) AAS
int?はnullにはならないから
593: (ワッチョイ dabd-pKa3) 2022/05/08(日)01:02 ID:19hEeZmX0(2/4) AAS
え、値型ってそういう事だったの と思って以下のコードで確認したら==null がtrueになっていました

int? a = null;
if(a == null) {
Debug.Print($"a is null"); // こっちになる
} else {
Debug.Print($"a=[{a}]");
}

int? がnullになっているように見えるのですが、もう少しアドバイスを頂けますでしょうか。
594: (アウアウウー Sa1f-e+q+) 2022/05/08(日)01:13 ID:YmLuYmO0a(1) AAS
よくそんな細かいところに気づいたな
vs2022(preview)でもツールチップ表示同じ
int?はnullになるよ。?ついてたらnull許容型だから入らなかったら困る

string? a = "nullでなく文字列";
string? t(string? v) => v;
var b = t(a);
var _ = b.GetType();
ついでにこんなのだとbは絶対にnullにならないけど緑の波線つく
その程度の一次的な解析しかしてない機能だから不具合を気にしたら負けだよ
595: (ワッチョイ dabd-pKa3) 2022/05/08(日)01:34 ID:19hEeZmX0(3/4) AAS
ありがとうございます。ツールチップだからそんなものか。
と、思ったらロジックでも不明点がありました。

以下のコードでIsIntがエラーになるのですが、これもそういうものなのでしょうか。
if文で非nullチェックをしても、型としてはint?だから IsInt(int v) は呼べない。という事は分かるのですが、
string?はifで非nullチェックをすると string 扱いになるので挙動が違うのですが、これもそういうものなのでしょうか。

void IsString(string v) { };
void IsInt(int v) { };
string? a = null;
if(a!=null){
IsString(a);
}
int? b = null;
if(b!=null){
IsInt(b); // 引数 1: は 'int?' から 'int' へ変換することはできません のエラーが出る。
}

↑両方通るか、両方エラーが出るならわかるけど 値型だけエラーが出る?
1-
あと 407 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.013s