!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part146
https://mevius.5ch.net/test/read.cgi/tech/1576069931/
■関連スレ
C#, C♯, C#相談室 Part95
https://mevius.5ch.net/test/read.cgi/tech/1508168482/
■コードを貼る場合は↓を使いましょう。
http://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/index
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries
http://referencesource.microsoft.com/
・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#(初心者用) Part147
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (エムゾネ FF9f-HF0o)
2020/02/19(水) 17:25:41.55ID:IsrGexiaF538デフォルトの名無しさん (ワッチョイ 5302-1Gce)
2020/04/28(火) 18:35:42.95ID:JNpMj+Oe0 "Aが1,3,5,6のどれかならtrue"
みたいな判定をswitch、Contains()使わずに実現する方法
みたいな判定をswitch、Contains()使わずに実現する方法
539デフォルトの名無しさん (ワッチョイ 082c-cUrQ)
2020/04/28(火) 18:43:43.86ID:sVyB4x530 TrueForAll…
540デフォルトの名無しさん (アウアウウー Sa30-R0M4)
2020/04/28(火) 19:28:54.81ID:P/sctXtYa 取りうる値の範囲が整数で最大でも63なら
(((0b_110101_0 >> A) & 1) == 1) とか
(((0b_110101_0 >> A) & 1) == 1) とか
541デフォルトの名無しさん (ワッチョイ 9317-1Gce)
2020/04/28(火) 19:31:51.95ID:tz02eWdG0 素直にContains使った方が良いんじゃね
Contains使えない理由でもあるの?
Contains使えない理由でもあるの?
542デフォルトの名無しさん (ワッチョイ 3a6a-lMNq)
2020/04/28(火) 20:23:59.00ID:fttQZMFx0 学校の課題なんじゃね?
543デフォルトの名無しさん (ワッチョイ 0a2f-Hty+)
2020/04/28(火) 20:45:53.08ID:CB5xdhwI0 ifとorでやれよ
544デフォルトの名無しさん (ワッチョイ 0c01-UN6T)
2020/04/28(火) 21:00:55.21ID:nnss28av0 array.Any(x => x.Equals(A))
Array.Exists()とか単純なfor loopとかいろいろやり方はあるよね
Array.Exists()とか単純なfor loopとかいろいろやり方はあるよね
545デフォルトの名無しさん (ワッチョイ ac63-w7gE)
2020/04/28(火) 21:20:15.28ID:LE+4zw960 var result = value switch ❴
1 or 3 or 5 or 6 => true,
_ => false,
❵;
C#9だけど
あ、switch式も駄目ですか
1 or 3 or 5 or 6 => true,
_ => false,
❵;
C#9だけど
あ、switch式も駄目ですか
546デフォルトの名無しさん (アウアウウー Sab5-BpYI)
2020/04/28(火) 21:39:44.15ID:ozSqZJZ1a bool Hoge(int n)
{
var table = new[] { false, true, false, true, false, true, true };
try
{
return table[n];
}
catch { }
return false;
}
クイズとしてはチャレンジングな部類じゃないねw
{
var table = new[] { false, true, false, true, false, true, true };
try
{
return table[n];
}
catch { }
return false;
}
クイズとしてはチャレンジングな部類じゃないねw
547デフォルトの名無しさん (ワッチョイ a402-IlnE)
2020/04/28(火) 21:46:29.35ID:9hpTUu+W0 頭いいな
switchを使わないってとこから単純なif判定も使えない
Containsを使わないってことから{1,3,5,6}みたいなコレクション自体使えない
って意図で考えてたけどその解法は気づかなかった
switchを使わないってとこから単純なif判定も使えない
Containsを使わないってことから{1,3,5,6}みたいなコレクション自体使えない
って意図で考えてたけどその解法は気づかなかった
548デフォルトの名無しさん (ワッチョイ ac63-w7gE)
2020/04/28(火) 21:55:35.85ID:LE+4zw960 表引きは昔から高速化目的でよく使われる
sin/cosなんかを演算で求めるんじゃなくて0〜90度まで全部コンパイル前に計算しておいてコードに埋め込んでおくとか
メモリ食うことになるしsin/cosみたいな例だと0.5度無理みたいなデメリットはあるけど状況によってはそういうのが有効だったりする
sin/cosなんかを演算で求めるんじゃなくて0〜90度まで全部コンパイル前に計算しておいてコードに埋め込んでおくとか
メモリ食うことになるしsin/cosみたいな例だと0.5度無理みたいなデメリットはあるけど状況によってはそういうのが有効だったりする
549デフォルトの名無しさん (ワッチョイ b2da-6+K6)
2020/04/28(火) 23:34:39.75ID:C/CcLAW60 個人的には >>544 の方法が手っ取り早く感じる。
public static bool Hoge(int A, int[] source)
{
return source.Any(s => s == A);
}
public static bool Hoge(int A, int[] source)
{
return source.Any(s => s == A);
}
550デフォルトの名無しさん (ワッチョイ 6763-rsUV)
2020/04/29(水) 00:46:32.86ID:0T/hrPb30 普段ならそれだよ
でも人様に10年はええなんて言える人が出すお題に普通に答えても…ってことで少しひねった回答しただけ
でも人様に10年はええなんて言える人が出すお題に普通に答えても…ってことで少しひねった回答しただけ
551デフォルトの名無しさん (ワッチョイ c7da-ipCf)
2020/04/29(水) 01:40:12.03ID:7lEbqk+c0 .Net Core でCe
552デフォルトの名無しさん (ワッチョイ c7da-ipCf)
2020/04/29(水) 01:47:19.07ID:7lEbqk+c0 .Net Core で CefSharp 使いたいのですが、nuget で参照追加しても、コンパイル時にエラーが発生します。
https://i.imgur.com/kGS4YK6.jpg
どうすれば動くのでしょうか?
https://i.imgur.com/kGS4YK6.jpg
どうすれば動くのでしょうか?
553デフォルトの名無しさん (アウアウウー Saab-iytM)
2020/04/29(水) 08:02:27.75ID:kQQTqavqa cef sharpとか初耳だわ
プレリリース版VSじゃないと対応してないとか?
プレリリース版VSじゃないと対応してないとか?
554デフォルトの名無しさん (ワッチョイ 877c-h6Le)
2020/04/29(水) 16:05:40.25ID:DmNhs8y10555デフォルトの名無しさん (ワッチョイ df02-h83k)
2020/04/29(水) 20:05:47.63ID:u+omc4b+0 今後業務用のWEBアプリを作るときはMVCとRazorPagesとBlazorだと皆さんはどれを選択しますか?
クラサバシステムのWEB化の話があるので今後どういう勉強をしておくか迷っています
(MVCやJSの開発経験はあり)
クラサバシステムのWEB化の話があるので今後どういう勉強をしておくか迷っています
(MVCやJSの開発経験はあり)
556デフォルトの名無しさん (ワッチョイ e701-WK8b)
2020/04/29(水) 20:10:06.56ID:3WB/6cAD0 OWIN?
557デフォルトの名無しさん (ワッチョイ df02-h83k)
2020/04/29(水) 20:34:00.93ID:u+omc4b+0558デフォルトの名無しさん (ワッチョイ e724-ts7H)
2020/04/29(水) 23:33:34.22ID:ZtFhb2uq0 ファイル圧縮解凍ライブラリについてなのですが、C#の場合はSharpCompressがベストなのでしょうか?
SevenZipSharpという7zipのラッパーもありこちらの方が良さそうかと思いきや、一見すると未完成なようにも見えますが
SevenZipSharpという7zipのラッパーもありこちらの方が良さそうかと思いきや、一見すると未完成なようにも見えますが
559デフォルトの名無しさん (ワッチョイ 6763-rsUV)
2020/04/30(木) 00:13:20.54ID:+bpYEB3E0 君の言うベストの要件は何?
System.IO.Compression.ZipFileで駄目なところは何?
System.IO.Compression.ZipFileで駄目なところは何?
560デフォルトの名無しさん (ワッチョイ ffeb-ts7H)
2020/04/30(木) 01:02:25.49ID:I9f6mjLE0 >>558
要件次第だけど、7z他多数のフォーマットに対応したいなら
Frost Moon Projectさんの、7-zip32.dll/7-zip64.dll/7z.dll文字化け対策版
これの7z.dll版がlzhやrar等に対応してる + 統合アーカイバプロジェクト系で自分は使いやすかった
SevenZipSharpも確か最初試したけど、普通に使えた気がする
要件次第だけど、7z他多数のフォーマットに対応したいなら
Frost Moon Projectさんの、7-zip32.dll/7-zip64.dll/7z.dll文字化け対策版
これの7z.dll版がlzhやrar等に対応してる + 統合アーカイバプロジェクト系で自分は使いやすかった
SevenZipSharpも確か最初試したけど、普通に使えた気がする
561552 (ワッチョイ c7da-ipCf)
2020/04/30(木) 01:36:48.27ID:cGNlLD3W0 https://github.com/cefsharp/CefSharp/issues/2796
の、kpreisser という人のやり方で出来ました。
の、kpreisser という人のやり方で出来ました。
562デフォルトの名無しさん (ワッチョイ a72c-XDUq)
2020/04/30(木) 06:38:09.52ID:y9JRI7g10 >>558
多分SharpCompressの方が機能は充実してる
SevenZipSharpはインメモリ内のマルチボリュームを解凍する術がないっぽかったから捨てた
まぁ一般的な使い方をする分には差はないんじゃないかな
大本の7z.dllは優秀だからパフォーマンスは後者の方が高いのかもしれないが
多分SharpCompressの方が機能は充実してる
SevenZipSharpはインメモリ内のマルチボリュームを解凍する術がないっぽかったから捨てた
まぁ一般的な使い方をする分には差はないんじゃないかな
大本の7z.dllは優秀だからパフォーマンスは後者の方が高いのかもしれないが
563デフォルトの名無しさん
2020/05/01(金) 10:47:14.24 SQL Serverとの連繋アプリを作るための参考書探してるんだが
VBのしか見つからないな これ買うしか無いか
WEB情報もVBのしか無いことあるが普通にC#でも使えるTIPS多いし
VBのしか見つからないな これ買うしか無いか
WEB情報もVBのしか無いことあるが普通にC#でも使えるTIPS多いし
564デフォルトの名無しさん (オッペケ Sr5b-fZS3)
2020/05/01(金) 10:49:28.34ID:KEKGQA87r むしろVBのがまだあるのか
565デフォルトの名無しさん (ワッチョイ dfad-3E9b)
2020/05/01(金) 11:09:25.56ID:IDkheS130 >>563
ググれば一発だし、ほぼリファレンスはC#やろ
ググれば一発だし、ほぼリファレンスはC#やろ
566デフォルトの名無しさん (アウアウエー Sa9f-ur4w)
2020/05/01(金) 11:26:57.11ID:k2YlXFh6a ggrks
567デフォルトの名無しさん (ワッチョイ e701-1QTE)
2020/05/02(土) 12:22:51.84ID:QOp3K9V60 100%このマシンでしか使わないという自作アプリが何個もあり、そのうちの大半が利用しているJson.NetやLog4NetなどのライブラリをLocal Copy = falseにして一か所のdllを使いまわしたいのですが
GACにインストールする以外の方法はないのでしょうか?
LoadLibrary+GetProcAddressを利用すれば可能なんだと思いますがその場合はVSのサポートを得られないですよね
GACにインストールする以外の方法はないのでしょうか?
LoadLibrary+GetProcAddressを利用すれば可能なんだと思いますがその場合はVSのサポートを得られないですよね
568デフォルトの名無しさん (スフッ Sdff-EwNI)
2020/05/02(土) 12:35:32.32ID:7zUXw5kNd569デフォルトの名無しさん (アウアウウー Saab-Ng5p)
2020/05/02(土) 13:09:17.01ID:TijFnmRAa >>567
今はコンテナでアプリにOSを丸ごとバンドルする時代ですよ
今はコンテナでアプリにOSを丸ごとバンドルする時代ですよ
570デフォルトの名無しさん (ワッチョイ df02-h83k)
2020/05/02(土) 13:10:08.32ID:8Sc54whm0 チンポリックインコを使えばいいね
571デフォルトの名無しさん (アウアウウー Saab-Ua06)
2020/05/02(土) 13:54:50.75ID:k5W2smL8a >>567
こんなの見つけた
https://www.atmarkit.co.jp/fdotnet/technology/idnfw11_03/idnfw11_03_05.html
やったことないので詳細は知らんけど
こんなの見つけた
https://www.atmarkit.co.jp/fdotnet/technology/idnfw11_03/idnfw11_03_05.html
やったことないので詳細は知らんけど
572デフォルトの名無しさん (ワッチョイ 67a7-enXe)
2020/05/02(土) 15:54:34.01ID:02dRNXb60 >>567
それって触らなくていいプログラムも共通部を触ったら全部更新必須だからね
その時、アレがないコレがない
別のdllがもうダウンロードできない
フレームワークのSDKを再インストールだ→エラーが出て動かない
動かない動かない
っていう地獄絵図しか見えないんだけど
経験浅いの?
それって触らなくていいプログラムも共通部を触ったら全部更新必須だからね
その時、アレがないコレがない
別のdllがもうダウンロードできない
フレームワークのSDKを再インストールだ→エラーが出て動かない
動かない動かない
っていう地獄絵図しか見えないんだけど
経験浅いの?
573デフォルトの名無しさん (ワッチョイ 67a7-enXe)
2020/05/02(土) 15:58:09.98ID:02dRNXb60 なんでもかんでも共通化したらいいってわけじゃないッスよ
関係ないモジュールは関係なくていいの
この自然体が理解できんうちはまだまだ
バナナが欲しかったのにゴリラと森まで付いてくるようなプログラム組んでんだろ?
関係ないモジュールは関係なくていいの
この自然体が理解できんうちはまだまだ
バナナが欲しかったのにゴリラと森まで付いてくるようなプログラム組んでんだろ?
574デフォルトの名無しさん (アウアウウー Saab-Ua06)
2020/05/02(土) 16:20:59.74ID:k5W2smL8a まあ変なこだわりは捨てて素直にサイドバイサイドにしとけよ、とは率直に思うねw
575デフォルトの名無しさん (ワッチョイ 8763-68pm)
2020/05/02(土) 16:21:26.07ID:3EN4KMOZ0 Windowsが25~15年前に通って盛大に失敗したあやまちだけど
人はまたそのあやまちをくり返そうとしているのか…
人はまたそのあやまちをくり返そうとしているのか…
576デフォルトの名無しさん (アウアウエー Sa9f-ur4w)
2020/05/03(日) 10:58:08.08ID:zajIy9nAa C#を使うともれなくWindowsが付いてきます
577デフォルトの名無しさん (ワッチョイ 0778-ts7H)
2020/05/03(日) 11:04:56.94ID:m1rOQWOt0 Windows以外のOSでも動くからそれは間違ってる
578デフォルトの名無しさん (アウアウエー Sa9f-ur4w)
2020/05/03(日) 11:47:56.93ID:zajIy9nAa Windows に WSL BOW 等があるように
C# にまるごと Windows が付いてくる訳じゃないのな?
C# にまるごと Windows が付いてくる訳じゃないのな?
579デフォルトの名無しさん (ワッチョイ dfad-3E9b)
2020/05/03(日) 14:41:41.12ID:O9QRGsEr0 >>576
何を言ってるんですか?
何を言ってるんですか?
580デフォルトの名無しさん (ワッチョイ 075f-MN6J)
2020/05/05(火) 03:04:26.70ID:ODFnlIPd0 >>552
プロジェクト内のファイル書き換えればいける
→https://github.com/cefsharp/CefSharp/issues/1714
もしくはプロジェクトの設定でAnyCPUじゃなくせばおk
プロジェクト内のファイル書き換えればいける
→https://github.com/cefsharp/CefSharp/issues/1714
もしくはプロジェクトの設定でAnyCPUじゃなくせばおk
581デフォルトの名無しさん (ワッチョイ 075f-LBUi)
2020/05/05(火) 07:23:25.99ID:AqRvYPWH0 【新型コロナ】富士フイルム、ゲイツ財団などからコロナ治療薬の製造受託
https://asahi.2ch.net/test/read.cgi/newsplus/1588319133/
c# プログラマ専用病院を作って、外から鍵かけて、理論的致死量の5倍ぐらい未承認治療薬を投与すれば開発速度が上がると思う。
コンピューターオタクに人権はないから、人権侵害にはならないし、c#プログラミングなんて 5ch とスタックオーバーフローを見れば誰でもできるから、プログラマ不足にもならない。
https://asahi.2ch.net/test/read.cgi/newsplus/1588319133/
c# プログラマ専用病院を作って、外から鍵かけて、理論的致死量の5倍ぐらい未承認治療薬を投与すれば開発速度が上がると思う。
コンピューターオタクに人権はないから、人権侵害にはならないし、c#プログラミングなんて 5ch とスタックオーバーフローを見れば誰でもできるから、プログラマ不足にもならない。
582デフォルトの名無しさん (ワッチョイ 2301-jgrQ)
2020/05/12(火) 00:36:35.47ID:xM8JclQ70 ttps://qiita.com/satorimon/items/5d2e6db7fe938fee958c
C#でこのページを参考にしたコードを書いているのですが、
var squares = contours.Where(a =>
{・・・})
のところの記述の意味がよくわかりません
中で宣言やらreturnやらしていて何がなんだか・・・でもビルドすると正常に動いてます
Whereで調べてもこのような構文での使い方が出てこなくて困っています
C#でこのページを参考にしたコードを書いているのですが、
var squares = contours.Where(a =>
{・・・})
のところの記述の意味がよくわかりません
中で宣言やらreturnやらしていて何がなんだか・・・でもビルドすると正常に動いてます
Whereで調べてもこのような構文での使い方が出てこなくて困っています
583デフォルトの名無しさん (ササクッテロレ Sp33-wEAr)
2020/05/12(火) 00:42:27.10ID:oML3x0+6p >>582
ただの無名関数にしか見えないが...
ただの無名関数にしか見えないが...
584デフォルトの名無しさん (ワッチョイ 6a02-gIrT)
2020/05/12(火) 00:43:24.46ID:SOptQxct0 LINQというものです
585デフォルトの名無しさん (ワッチョイ 5b2d-C0uG)
2020/05/12(火) 00:44:45.73ID:Rm1nFE+i0586デフォルトの名無しさん (ワッチョイ 2a01-Yqly)
2020/05/12(火) 00:57:05.47ID:rr7jvTFY0 Whereで調べても使い方出てくるよ
IEnumerable<string> query = fruits.Where(fruit => fruit.Length < 6);
https://docs.microsoft.com/en-us/dotnet/api/system.linq.enumerable.where?view=netcore-3.1
ただリファレンスにあるWhereメソッドのシグニチャを
初心者が理解できるようになるまでの道のりは結構長いな
public static IEnumerable<TSource> Where<TSource> (this IEnumerable<TSource> source, Func<TSource,bool> predicate);
IEnumerable<string> query = fruits.Where(fruit => fruit.Length < 6);
https://docs.microsoft.com/en-us/dotnet/api/system.linq.enumerable.where?view=netcore-3.1
ただリファレンスにあるWhereメソッドのシグニチャを
初心者が理解できるようになるまでの道のりは結構長いな
public static IEnumerable<TSource> Where<TSource> (this IEnumerable<TSource> source, Func<TSource,bool> predicate);
587デフォルトの名無しさん (アウアウエー Sae2-oySJ)
2020/05/12(火) 01:39:09.58ID:zR/fg8GXa 親クラスを参照する方法はありますでしょうか。
Javaで書くなら以下のイメージとなります。
class A {
int val;
class B {
void Method() {
A.this.val; // ここで親クラスを参照したい
}
}
}
Javaで書くなら以下のイメージとなります。
class A {
int val;
class B {
void Method() {
A.this.val; // ここで親クラスを参照したい
}
}
}
588デフォルトの名無しさん (ワッチョイ 2301-oySJ)
2020/05/12(火) 01:41:52.90ID:xM8JclQ70 >>582です
理解出来ましたありがとうございます!
理解出来ましたありがとうございます!
589デフォルトの名無しさん (ワッチョイ 5b2c-1Non)
2020/05/12(火) 01:47:51.53ID:ApYFe+qM0590デフォルトの名無しさん (アウアウウー Sa1f-OGoq)
2020/05/12(火) 01:54:35.84ID:DaJUnBm/a591デフォルトの名無しさん (アウアウエー Sae2-oySJ)
2020/05/12(火) 01:59:01.93ID:zR/fg8GXa >>589-590
ありがとうございます
ありがとうございます
592デフォルトの名無しさん (ワッチョイ 5b01-gIrT)
2020/05/12(火) 22:22:13.93ID:/QEFAV670 参照型の変数ってないんですか?
int c = Properties.Settings.Default.Counter
みたいにエイリアスっぽく使いたいのですが、何かいい方法あるでしょか
int c = Properties.Settings.Default.Counter
みたいにエイリアスっぽく使いたいのですが、何かいい方法あるでしょか
593デフォルトの名無しさん (ワッチョイ be7b-nLaH)
2020/05/12(火) 22:35:54.36ID:Qqvr4tTg0594デフォルトの名無しさん (ワッチョイ 5b2c-1Non)
2020/05/12(火) 22:41:58.71ID:ApYFe+qM0 エイリアスっていうからC++でいうところのT&型かと思ったけど違うのか?
C#で「参照型の変数」って普通のstring text;とかDataTable table;とかになるけど
C#で「参照型の変数」って普通のstring text;とかDataTable table;とかになるけど
595デフォルトの名無しさん (ワッチョイ 6a6a-oySJ)
2020/05/12(火) 23:23:20.17ID:qR+vLqM00 ref のことじゃね?
ref var x = ref Xxxxx;
ref var x = ref Xxxxx;
596デフォルトの名無しさん (ワッチョイ 532f-EoUu)
2020/05/13(水) 00:03:03.61ID:J5ZD6qBk0 int? のことじゃね?
597デフォルトの名無しさん (ワッチョイ 43da-32x/)
2020/05/13(水) 00:12:10.85ID:OFLzozUz0 ポインタで全て解決
598デフォルトの名無しさん (ワッチョイ 6d2d-imz8)
2020/05/13(水) 00:15:30.74ID:7szTGv5D0 >>596
それはボケ?
それはボケ?
599デフォルトの名無しさん (ワッチョイ c342-M5Di)
2020/05/13(水) 00:30:19.64ID:NaKv0jEn0600デフォルトの名無しさん (ワッチョイ ff01-vB/y)
2020/05/13(水) 00:36:24.06ID:WBibu7Ic0 using Counter = Properties.Settings.Default.Counter;
601デフォルトの名無しさん (ワッチョイ 4da7-071a)
2020/05/13(水) 01:04:23.01ID:9AF39pvJ0 ポインタが欲しいんだろ
class valInt{
public int val;
}
class valStr{
public string val;
}
って作っとけば?
普段は全く必要ないのに
リフレクション使うとき滅茶苦茶必要になったわ
class valInt{
public int val;
}
class valStr{
public string val;
}
って作っとけば?
普段は全く必要ないのに
リフレクション使うとき滅茶苦茶必要になったわ
602デフォルトの名無しさん (ワッチョイ d159-nTbr)
2020/05/13(水) 01:11:53.36ID:HB9dDlz00 質問失礼致します。
list1にはboolが3つ入っています。
list2はクラスが3つ入ったリストで、そのクラスにはpublic bool flagが宣言されています。
両方falseの番号が見つかるまで繰り返したいです。
public int Check(){
int x = list1.IndexOf(false);
while (list2[x].flag == true){
x = list1.IndexOf(false, x +1)
}
return x;
}
このコードを書いたのですが、
list2[x].flagが3つ全てtrueだった場合にx+1が範囲外になってエラーが出ていると思われます。
条件に合う物が見つからない時にも何か(-1とか)返せる様にすれば良いのかもしれませんが、どうすればいいのかまったくわかりません。。
どうかヒントだけでも教えて下さい、、
よろしくお願いします。
list1にはboolが3つ入っています。
list2はクラスが3つ入ったリストで、そのクラスにはpublic bool flagが宣言されています。
両方falseの番号が見つかるまで繰り返したいです。
public int Check(){
int x = list1.IndexOf(false);
while (list2[x].flag == true){
x = list1.IndexOf(false, x +1)
}
return x;
}
このコードを書いたのですが、
list2[x].flagが3つ全てtrueだった場合にx+1が範囲外になってエラーが出ていると思われます。
条件に合う物が見つからない時にも何か(-1とか)返せる様にすれば良いのかもしれませんが、どうすればいいのかまったくわかりません。。
どうかヒントだけでも教えて下さい、、
よろしくお願いします。
603デフォルトの名無しさん (ワッチョイ d159-nTbr)
2020/05/13(水) 01:17:14.99ID:HB9dDlz00 書き込んだあとに気付いたのですが、もしかしてwhileの中のxはforと違って繰り返すたびに更新されないのでしょうか?
604デフォルトの名無しさん (アウアウウー Sa31-L7FI)
2020/05/13(水) 01:32:42.10ID:RZkyIb9Ia >>602
何で素直にforでスキャンしないの?
コードを書く前に、まずそれを自分が手動で行う場合の手順を日本語で明確に表現しましょう。
次にそれをコードに変換する。
インデックスを0, 1, 2と増加させて、両方falseならその時のインデックスを返すんでしょ?
何でそれを素直にコードにしないの
何で素直にforでスキャンしないの?
コードを書く前に、まずそれを自分が手動で行う場合の手順を日本語で明確に表現しましょう。
次にそれをコードに変換する。
インデックスを0, 1, 2と増加させて、両方falseならその時のインデックスを返すんでしょ?
何でそれを素直にコードにしないの
605デフォルトの名無しさん (ワッチョイ d159-nTbr)
2020/05/13(水) 01:37:13.82ID:HB9dDlz00 >>604
すみません、2日間上手く行ってなくて最初はforで試行錯誤してたんですけど何回も調べて書き直してってやってる間になにがなんだかわからなくなってしまいました。。
もう一度forでやってみます!
すみません、2日間上手く行ってなくて最初はforで試行錯誤してたんですけど何回も調べて書き直してってやってる間になにがなんだかわからなくなってしまいました。。
もう一度forでやってみます!
606デフォルトの名無しさん (ワッチョイ 4124-/iGY)
2020/05/13(水) 08:02:36.01ID:9jM9qfYw0 >>605
プログラミング自体初心者だと思うけど基本的にwhileは使わないほうが良いよ(ちょっとしたミスで無限ループに陥ってフリーズする等バグの温床になる)
あとlist2に入ってるクラスをboolフィールドもう一つ拡張してlist2だけで運用できない?
一応既存の場合ならこういうコードでいい
for (int i = 0; i < list2.Count; i++) //list2を中心に回す
{
if (i >= list1.Count) break; //list1が範囲外になったらforを抜ける
if (!list1[i] && !list2[i].flag) return i; //両方falseならインデックスを返す
}
return -1; //全て探し終えてもfalse && falseが見つからなかったらここに到達してreturn -1
プログラミング自体初心者だと思うけど基本的にwhileは使わないほうが良いよ(ちょっとしたミスで無限ループに陥ってフリーズする等バグの温床になる)
あとlist2に入ってるクラスをboolフィールドもう一つ拡張してlist2だけで運用できない?
一応既存の場合ならこういうコードでいい
for (int i = 0; i < list2.Count; i++) //list2を中心に回す
{
if (i >= list1.Count) break; //list1が範囲外になったらforを抜ける
if (!list1[i] && !list2[i].flag) return i; //両方falseならインデックスを返す
}
return -1; //全て探し終えてもfalse && falseが見つからなかったらここに到達してreturn -1
607デフォルトの名無しさん (アウアウウー Sa1d-/iGY)
2020/05/13(水) 09:30:48.50ID:RdUH2aEBa > whileは使わない方が良いよ
それは同意しない
その程度でバグを起こすようなレベルなら何使おうがどうせまともに動くわけない
forをはじめとした、より抽象度の高い他の機能によって自然に代替できるケースにおいてはwhileより他を好むべきだとは思うが、
whileの方が自然なケースってのは存在する
それは同意しない
その程度でバグを起こすようなレベルなら何使おうがどうせまともに動くわけない
forをはじめとした、より抽象度の高い他の機能によって自然に代替できるケースにおいてはwhileより他を好むべきだとは思うが、
whileの方が自然なケースってのは存在する
608デフォルトの名無しさん (ワッチョイ d159-nTbr)
2020/05/13(水) 09:31:40.13ID:HB9dDlz00 >>606
おはようございます。
丁寧な回答ありがとうございます。
仰る通りプログラム自体初心者です。。
一応あの後、
int index = -1;
for(int i =0; i < list1.Count; i++){
if(list1[i] == false && list2[i].flag == false){
index = i;
return index;
}
return index;
}
という風にやってみました。
合っているかわかりませんが、、一応動作しています。
breakで抜ける方法なども想像すらしてなかったので大変勉強になりました。
教えて頂いたコードの方がが安全そうなので参考にして書き直してみます!
本当にありがとうございました!
おはようございます。
丁寧な回答ありがとうございます。
仰る通りプログラム自体初心者です。。
一応あの後、
int index = -1;
for(int i =0; i < list1.Count; i++){
if(list1[i] == false && list2[i].flag == false){
index = i;
return index;
}
return index;
}
という風にやってみました。
合っているかわかりませんが、、一応動作しています。
breakで抜ける方法なども想像すらしてなかったので大変勉強になりました。
教えて頂いたコードの方がが安全そうなので参考にして書き直してみます!
本当にありがとうございました!
609デフォルトの名無しさん (ワッチョイ d159-nTbr)
2020/05/13(水) 10:00:08.37ID:HB9dDlz00610デフォルトの名無しさん (ワッチョイ 2b01-32x/)
2020/05/13(水) 10:20:12.64ID:tJ/HyvQb0611デフォルトの名無しさん (ワッチョイ 2b01-32x/)
2020/05/13(水) 10:25:24.49ID:tJ/HyvQb0612デフォルトの名無しさん (ワッチョイ 4da7-071a)
2020/05/13(水) 11:51:27.79ID:9AF39pvJ0 >>611
だから、クラスでラップするとかしないとポインタっぽいことできないんだってばこの言語
だから、クラスでラップするとかしないとポインタっぽいことできないんだってばこの言語
613デフォルトの名無しさん (アウアウウー Sa31-L7FI)
2020/05/13(水) 12:42:25.67ID:KNUhyNjza 別にエイリアスじゃなくて一時変数でいいじゃん
int hoge = Foo.HogeHageDebuBaka;
書き換えないならそもそもエイリアスである必要がないし、
書き換える必要がある場合もほとんどのケースは一時変数に対する変更を最後に一か所で
元のフィールドなりプロパティーに書き戻すだけで済むと思うんだけど違うのかな。
int hoge = Foo.HogeHageDebuBaka;
書き換えないならそもそもエイリアスである必要がないし、
書き換える必要がある場合もほとんどのケースは一時変数に対する変更を最後に一か所で
元のフィールドなりプロパティーに書き戻すだけで済むと思うんだけど違うのかな。
614デフォルトの名無しさん (ワッチョイ 179b-Tl4l)
2020/05/13(水) 12:46:03.36ID:0MZWSb+/0 単にマクロ的に短く記述したいってことなら使用先のcsファイルの一番上にこれ書いとけばいい
using static c = Properties.Settings.Default.Counter;
using static c = Properties.Settings.Default.Counter;
615デフォルトの名無しさん (アウアウエー Sa93-ahgx)
2020/05/13(水) 13:28:16.32ID:w7cEJ83Ea Console.Out にデータを書く A.exe (ソース A.cs がある) と
Console.In からデータを読み込む B.exe があるとき
A | B
で B.exe 側で A.exe が書いたデータを取り出せるところまでは確認しました
そこで A.exe の中から
ProcessStartInfo psi = new ProcessStartInfo(){
FileName="B.exe", Arguments="", RedirectStandardInput=true,
RedirectStandardOutput=false, RedirectStandardError=false,
UseShellExecute=false, CreateNoWindow=true, ErrorDialog=false};
Process p = Process.Start(psi);
Console.WriteLine("test");
// p.WaitForExit();
// p.Close();
とすると
>error: ファイルを格納しているボリュームが外部的に変更されたため、開かれているファイルが無効になりました。
というエラーが出てしまいます。
Console.WriteLine("test"); のところを p.StandardInput.WriteLine("test");
にすれば書き込めるらしいのですが出来れば A.cs の変更を極力したくないです
あと
Console.Out.WriteLine("test"); もダメでした
RedirectStandardInput=false, もだめでした
何か使い方間違ってますか?
Console.In からデータを読み込む B.exe があるとき
A | B
で B.exe 側で A.exe が書いたデータを取り出せるところまでは確認しました
そこで A.exe の中から
ProcessStartInfo psi = new ProcessStartInfo(){
FileName="B.exe", Arguments="", RedirectStandardInput=true,
RedirectStandardOutput=false, RedirectStandardError=false,
UseShellExecute=false, CreateNoWindow=true, ErrorDialog=false};
Process p = Process.Start(psi);
Console.WriteLine("test");
// p.WaitForExit();
// p.Close();
とすると
>error: ファイルを格納しているボリュームが外部的に変更されたため、開かれているファイルが無効になりました。
というエラーが出てしまいます。
Console.WriteLine("test"); のところを p.StandardInput.WriteLine("test");
にすれば書き込めるらしいのですが出来れば A.cs の変更を極力したくないです
あと
Console.Out.WriteLine("test"); もダメでした
RedirectStandardInput=false, もだめでした
何か使い方間違ってますか?
616デフォルトの名無しさん (JP 0H13-2td9)
2020/05/13(水) 13:30:17.94ID:9ouyGW4jH IT掲示板群 ttp://x0000.net/forum.aspx?id=15
学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など
simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0
学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など
simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0
617デフォルトの名無しさん (ブーイモ MM5b-26de)
2020/05/13(水) 13:49:55.90ID:uqtilrQeM >>615
var tmp = Console.Out;
try {
var p = Process.Start(psi);
Console.SetOut(p.StandardInput);
Console.WriteLine("hoge");
p.WaitForExit();
}
finally {
Console.SetOut(tmp);
}
var tmp = Console.Out;
try {
var p = Process.Start(psi);
Console.SetOut(p.StandardInput);
Console.WriteLine("hoge");
p.WaitForExit();
}
finally {
Console.SetOut(tmp);
}
618デフォルトの名無しさん (ワッチョイ 2b01-32x/)
2020/05/13(水) 16:30:12.93ID:tJ/HyvQb0619デフォルトの名無しさん (ワッチョイ 4124-/iGY)
2020/05/13(水) 16:42:19.79ID:9jM9qfYw0 ポインタは使えるけどC++と違ってstaticなオブジェクトですらガベコレによってアドレス変わる可能性が常にあるから
長寿命なポインタというのは自前でガベコレ管轄外のアンマネージドメモリを確保しない限り成立しない
長寿命なポインタというのは自前でガベコレ管轄外のアンマネージドメモリを確保しない限り成立しない
620デフォルトの名無しさん (ワッチョイ 5b84-57Gp)
2020/05/13(水) 17:08:14.26ID:D3xPcSfY0 >>602
whileのロジックが足りない
while((x != -1 && x < list1.Count) && list2[x].flag)
にするとlist1の要素超えなくて見つからないと「-1」が返ると思うよ
whileのロジックが足りない
while((x != -1 && x < list1.Count) && list2[x].flag)
にするとlist1の要素超えなくて見つからないと「-1」が返ると思うよ
621デフォルトの名無しさん (ワッチョイ 5b84-57Gp)
2020/05/13(水) 17:24:13.51ID:D3xPcSfY0622デフォルトの名無しさん (ワッチョイ 7f2c-JcAG)
2020/05/13(水) 17:39:16.20ID:VSt/R8YQ0 Ruby では普通に、print, puts メソッドで出力したら、
標準出力・$stdout に出力される
どこに出力するかなど、考えたこともない
標準出力・$stdout に出力される
どこに出力するかなど、考えたこともない
623デフォルトの名無しさん (ワッチョイ 115f-hrec)
2020/05/13(水) 17:51:43.48ID:48KyBdoc0 >>622
相変わらずバカだね
相変わらずバカだね
624622 (ワッチョイ 7f2c-JcAG)
2020/05/13(水) 18:25:56.36ID:VSt/R8YQ0 標準出力以外を使う場合は、標準エラーに出力する時だけ。
標準出力なら、パイプ・ファイルへのリダイレクトも使える
a.rb | b.rb パイプ
a.rb > b.rb 上書き
a.rb >> b.rb 追記
標準出力なら、パイプ・ファイルへのリダイレクトも使える
a.rb | b.rb パイプ
a.rb > b.rb 上書き
a.rb >> b.rb 追記
625デフォルトの名無しさん (ワッチョイ 2b01-32x/)
2020/05/13(水) 19:32:00.52ID:tJ/HyvQb0 >>619
なるほどね、実質ポインタは使い物にならないね、何が出てくるかわからないとか
なるほどね、実質ポインタは使い物にならないね、何が出てくるかわからないとか
626デフォルトの名無しさん (ワッチョイ ff01-vB/y)
2020/05/13(水) 20:56:37.22ID:WBibu7Ic0627デフォルトの名無しさん (ワッチョイ 4124-/iGY)
2020/05/13(水) 21:18:36.78ID:9jM9qfYw0 >>625
ローカル値型変数ならその関数抜けるまではスタック上にあることが保証されるからその関数内限定でCと同じように扱える
バイト配列等参照型もfixed (byte* ptr = &bytes[0]) {}と囲っている間はガベコレにアドレス移動させない通知を出せばそのスコープ間では扱える
ポインタフィールドを持たせたいとかになるとさっき言ったようなアンマネージドメモリを利用するしかないのでC#では実質不可能になってくる
ローカル値型変数ならその関数抜けるまではスタック上にあることが保証されるからその関数内限定でCと同じように扱える
バイト配列等参照型もfixed (byte* ptr = &bytes[0]) {}と囲っている間はガベコレにアドレス移動させない通知を出せばそのスコープ間では扱える
ポインタフィールドを持たせたいとかになるとさっき言ったようなアンマネージドメモリを利用するしかないのでC#では実質不可能になってくる
628デフォルトの名無しさん (ササクッテロレ Sp63-5XO3)
2020/05/14(木) 02:19:30.95ID:2LmxtE+Tp C#に、lispでいうmapcar関数のようなものはありますか?
629デフォルトの名無しさん (ワッチョイ ff01-vB/y)
2020/05/14(木) 03:11:58.67ID:HxdbbI2M0 >>628
Enumerable.Select()
Enumerable.Select()
630デフォルトの名無しさん (オッペケ Sr93-5iCk)
2020/05/14(木) 10:45:17.58ID:n+ookAJTr c#頑張ってきたのでc++ちょっとかじって浮気してきまっす!
挫折したら秒で戻ってきまっす!
挫折したら秒で戻ってきまっす!
631デフォルトの名無しさん (ワッチョイ 5902-gIXh)
2020/05/14(木) 11:26:58.59ID:ztWr1bjJ0 目的がかなり違う言語だから気をつけなされ
632622 (ワッチョイ 7f2c-JcAG)
2020/05/14(木) 14:04:08.71ID:FSEZeoAj0 >>626
Ruby では、`コマンド`、system(コマンド)などは同期処理だけど、
spawn は非同期だから、すぐに子プロセスのPID が返ってくる
だから、Process.waitpid で、子プロセスの終了を待ち合せる必要がある
p pid = spawn('uname') #=> 1142
Process.waitpid pid
出力
Linux
Ruby では、`コマンド`、system(コマンド)などは同期処理だけど、
spawn は非同期だから、すぐに子プロセスのPID が返ってくる
だから、Process.waitpid で、子プロセスの終了を待ち合せる必要がある
p pid = spawn('uname') #=> 1142
Process.waitpid pid
出力
Linux
633デフォルトの名無しさん (アウアウウー Sa31-7tKh)
2020/05/14(木) 14:53:15.52ID:0DpJdKOEa List<string>をfor文中で繰り返し初期化して使用したいのですが、
List<string> 変数 = new List<string>()
で出来ますか?
それともfor文の最後でclearしないといけませんか?
ネットにソースが見当たらないので質問しました。ソースもあるよという方はその内容も教えていただきたく。
お願いいたします。
List<string> 変数 = new List<string>()
で出来ますか?
それともfor文の最後でclearしないといけませんか?
ネットにソースが見当たらないので質問しました。ソースもあるよという方はその内容も教えていただきたく。
お願いいたします。
634デフォルトの名無しさん (ワッチョイ 4124-gIXh)
2020/05/14(木) 15:31:14.00ID:0NVqPTt90 forの中でList<string> 変数 = new List<string>()とループ毎に確保しているのなら終わり際にClearは書かなくていい
文字通りnewだからね
ただパフォーマンス的にはforの前で作ったリストをループ中の最後にClear()して使いまわす方が若干効率は良くなる
一般的な用途であれば差にもならない差だから前者で良いけど
文字通りnewだからね
ただパフォーマンス的にはforの前で作ったリストをループ中の最後にClear()して使いまわす方が若干効率は良くなる
一般的な用途であれば差にもならない差だから前者で良いけど
635デフォルトの名無しさん (アウアウウー Sa31-7tKh)
2020/05/14(木) 16:08:02.92ID:0DpJdKOEa >>634
なるほど、ありがとうございます。
なるほど、ありがとうございます。
636デフォルトの名無しさん (ワッチョイ 5fb2-mth5)
2020/05/14(木) 16:24:15.76ID:oGs32I5W0 >>630
おかえり
おかえり
637デフォルトの名無しさん (ワッチョイ 5fb2-mth5)
2020/05/14(木) 16:24:31.04ID:oGs32I5W0 >>632
さよなら
さよなら
638デフォルトの名無しさん (ワッチョイ 5fb2-mth5)
2020/05/14(木) 16:25:38.87ID:oGs32I5W0 >>635
clearいれるだけ処理遅くなるぞ。不要や
clearいれるだけ処理遅くなるぞ。不要や
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 首相官邸前で「戦争あおるな」 台湾有事巡る答弁に抗議 [蚤の市★]
- 高市首相告白「『なめられない服』を選ぶことに数時間を費やしました」「外交交渉でマウント取れる服、買わなくてはいかんかもなぁ」 [ぐれ★]
- 【高市リスク】立民・小西洋之参院議員「高市総理がとんでもない安全保障オンチで外交オンチ」 [ぐれ★]
- 【赤坂ライブハウス刺傷】逃走していた自衛官の男(43)を殺人未遂の疑いで逮捕 警視庁 被害女性とは知人関係 [Ailuropoda melanoleuca★]
- 『DOWNTOWN+』会員数50万人突破で見えてきた 松本人志の“月収4ケタ万円”驚愕収入 [阿弥陀ヶ峰★]
- 【千葉】コンビニに尿入りペットボトル並べた疑い、26歳男「むしゃくしゃして」…購入した客が飲もうとしたところ臭いに違和感 [ぐれ★]
- 眼帯つけようかな
- 天ぷら食いたい
- 勇者の母「ん……ふっ、起きなさいっ……私のっ……私のかわいい坊やっ、今日は貴方が……んはっ……勇者として旅立つ日……うふふ」
- 大塚芳忠のASMR
- 東京てこんな女ばっかいるの?
- ペヤング超大盛り完食出来そうもない
