■Visual Studio 2017 Community(無償の統合開発環境)等はこちら
http://www.visualstudio.com/downloads/
■コードを貼る場合はこちら
http://ideone.com/
■前スレ
C#, C♯, C#相談室 Part92
http://echo.2ch.net/test/read.cgi/tech/1485589613/
■次スレは>>970が建てる事。
建てられない場合は他を指定する事。
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
探検
C#, C♯, C#相談室 Part93©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 1e06-m8Mb)
2017/04/22(土) 08:52:00.93ID:iVvswOrb0547デフォルトの名無しさん (ワッチョイ 99b3-8opj)
2018/06/18(月) 14:58:19.26ID:Pxwa7YvH0 ライセンス契約の無い奴にそこから先は教えられねーわ。
548デフォルトの名無しさん (ブーイモ MM6d-2ITt)
2018/06/18(月) 15:38:53.66ID:XzDxjxqSM バイナリファイルをバイト配列に一気に読み込んでLINQでゴリゴリするなんてC#って言うか.netの醍醐味だね。
C、C++と歩んできて正直C#なめてたが、プログラムの書き方変わったよ。
C、C++と歩んできて正直C#なめてたが、プログラムの書き方変わったよ。
549デフォルトの名無しさん (ワッチョイ 0296-gvEZ)
2018/06/18(月) 19:59:56.07ID:YV8aSpRw0 バイナリファイルのバイト配列はストリーム(BinaryReader/Writer)経由でしか扱ったことないな
浅学ですまないが非常に興味があるので、何をする処理にLINQを使っているのか教えてほしい
浅学ですまないが非常に興味があるので、何をする処理にLINQを使っているのか教えてほしい
550デフォルトの名無しさん (ワッチョイ 2e9a-gvEZ)
2018/06/18(月) 20:21:08.97ID:xPHPGLWh0 >>549
横レスだけど「読み込んでLINQ」だからパーサーの部分だろ
横レスだけど「読み込んでLINQ」だからパーサーの部分だろ
551デフォルトの名無しさん (ワッチョイ dd9f-2ITt)
2018/06/18(月) 20:48:17.73ID:Dbb+UGxb0 スキップ.テイク.リバースでバイトオーダー反転してデータ取り込むとかだ。
552デフォルトの名無しさん (ワッチョイ dd9f-2ITt)
2018/06/18(月) 20:55:37.17ID:Dbb+UGxb0 テキストファイルを一行ずつ読み込むとか、バイナリファイルを1フレームずつ読み込むなんてのは時代遅れなんじゃねかと。
最近は一括読み込みしかしないな。
パフォーマンスはライブラリやOSが担保してくれる。
最近は一括読み込みしかしないな。
パフォーマンスはライブラリやOSが担保してくれる。
553デフォルトの名無しさん (アウアウエー Sa4a-jhA2)
2018/06/18(月) 21:33:32.15ID:ubyRHWyfa 時代遅れかどうかは知らんけど(そういうネトウヨチックな「俺スゲー」という間抜けな自己陶酔、俺は大嫌いだがw)
富豪的であってもそれが一時的(たとえばメソッドの中だけ)なら何も問題ないね。
その方がより簡潔だったり可読的に書けるなら否定する理由は何もない
富豪的であってもそれが一時的(たとえばメソッドの中だけ)なら何も問題ないね。
その方がより簡潔だったり可読的に書けるなら否定する理由は何もない
554デフォルトの名無しさん (ブーイモ MMb6-pk7F)
2018/06/18(月) 21:36:42.05ID:C5OiN+R5M webのアクセスログとかもそんな事するのけ?
555デフォルトの名無しさん (アメ MM6d-pvX8)
2018/06/18(月) 21:40:28.88ID:ltR7ddTWM 時系列データのリアルタイム処理とかどうやって一括で読み込むんだ??
556デフォルトの名無しさん (ササクッテロ Spf1-8opj)
2018/06/18(月) 21:41:56.46ID:H/s4J3I+p 巨大な高速RAMストレージを特注
557デフォルトの名無しさん (ワッチョイ dd9f-2ITt)
2018/06/18(月) 21:46:48.35ID:Dbb+UGxb0 時系列的に増えていくファイルだとか、ソケット通信のバイトストリートだとかは順次読み込みするしかないよ。
だけどドライブにあるファイルは一括読み込みの方が簡単だよ。1ステップだからね。それをソートするなりデータ抽出するなりLINQ使えば簡単だよ。
それを知ってから逐次読み出しなんか面倒くさくアホらしくなったよ。
だけどドライブにあるファイルは一括読み込みの方が簡単だよ。1ステップだからね。それをソートするなりデータ抽出するなりLINQ使えば簡単だよ。
それを知ってから逐次読み出しなんか面倒くさくアホらしくなったよ。
558デフォルトの名無しさん (ワッチョイ dd9f-2ITt)
2018/06/18(月) 21:50:28.19ID:Dbb+UGxb0559デフォルトの名無しさん (アウアウエー Sa4a-jhA2)
2018/06/18(月) 21:52:07.22ID:ubyRHWyfa >>556には「高速RAMストレージ」って書いてあるけどw
560デフォルトの名無しさん (ササクッテロ Spf1-8opj)
2018/06/18(月) 21:52:33.25ID:H/s4J3I+p561デフォルトの名無しさん (ワッチョイ 2ec9-Bw3Y)
2018/06/18(月) 21:56:24.93ID:DGcX/y5w0 LINQのメリットの一つに IEnumerable<T>があるのになんで一括読み込みに拘るんや
562デフォルトの名無しさん (ブーイモ MMb6-pk7F)
2018/06/18(月) 21:57:36.33ID:C5OiN+R5M 痴性溢れる御意見ですね
563デフォルトの名無しさん (ワッチョイ dd9f-2ITt)
2018/06/18(月) 22:00:34.70ID:Dbb+UGxb0 一括読み込みしたものがアイエニュメラブルになるから。
564デフォルトの名無しさん (ワッチョイ dd9f-2ITt)
2018/06/18(月) 22:04:21.91ID:Dbb+UGxb0565デフォルトの名無しさん (アウアウエー Sa4a-jhA2)
2018/06/18(月) 22:08:39.81ID:ubyRHWyfa まったく関係ないが、そういや、この手のデバイスって結局実用化せずに消えたのかね
まったく聞かないな
http://blog.livedoor.jp/dankogai/archives/50560934.html
読んだのずいぶん前とは思ったがもう12年前か...
まったく聞かないな
http://blog.livedoor.jp/dankogai/archives/50560934.html
読んだのずいぶん前とは思ったがもう12年前か...
566デフォルトの名無しさん (ササクッテロ Spf1-8opj)
2018/06/18(月) 22:31:50.96ID:H/s4J3I+p >>564
高速flash memoryでraid組んでもRAMの速度には負けるだろ。
高速flash memoryでraid組んでもRAMの速度には負けるだろ。
567デフォルトの名無しさん (ブーイモ MM85-SFwM)
2018/06/19(火) 23:13:11.27ID:BrsQYlEtM568デフォルトの名無しさん (ワッチョイ 1f8a-DJU/)
2018/06/25(月) 11:21:29.65ID:pxATIqrb0 Debug.Failのサンプルコードがこんなのなんですが
プログラムのバグでもない限りは絶対に訪れないような場所には
片っ端からDebug.Failを撒いておいたほうがいいんですか?
それともそれ専用のthrowすべき例外なりがあるんでしょうか?
Assert.Fail?
何も書かないのは気持ち悪いので指針を教えてください
switch (option) {
case Option.First:
result = 1.0;
break;
// Insert additional cases.
default:
Debug.Fail("Unknown Option " + option);
result = 1.0;
break;
}
プログラムのバグでもない限りは絶対に訪れないような場所には
片っ端からDebug.Failを撒いておいたほうがいいんですか?
それともそれ専用のthrowすべき例外なりがあるんでしょうか?
Assert.Fail?
何も書かないのは気持ち悪いので指針を教えてください
switch (option) {
case Option.First:
result = 1.0;
break;
// Insert additional cases.
default:
Debug.Fail("Unknown Option " + option);
result = 1.0;
break;
}
569デフォルトの名無しさん (ブーイモ MM0f-STG2)
2018/06/25(月) 12:12:52.11ID:DuFsc7dIM >>568
そういうのはフロー解析による不要なコンパイルエラーを回避するために throw する
例外の種類は状況やポリシーに応じて InvalidOperationException, NotSupportedException, ArgumentException, NotImplementedException あたりを使うのが普通
そういうのはフロー解析による不要なコンパイルエラーを回避するために throw する
例外の種類は状況やポリシーに応じて InvalidOperationException, NotSupportedException, ArgumentException, NotImplementedException あたりを使うのが普通
570デフォルトの名無しさん (ワントンキン MMdf-h3K6)
2018/06/25(月) 12:29:34.73ID:Yf6/X2v7M これは標準で例外欲しくなるよなぁ
いつも何を投げるか迷う
いつも何を投げるか迷う
571デフォルトの名無しさん (アウアウエー Sa7f-3IMT)
2018/06/25(月) 12:33:59.90ID:G9vuY89la572デフォルトの名無しさん (アウアウウー Sae3-STG2)
2018/06/25(月) 12:40:32.20ID:M/oLTPjda 常識的にキャッチされない種類の例外なら何でもいいわな
InvalidOperationExceptionだけはキャッチされる場合があるから微妙だけど、慣習的にはわりと多数派な気がする
個人的には常に NotImplementedException にしたい
InvalidOperationExceptionだけはキャッチされる場合があるから微妙だけど、慣習的にはわりと多数派な気がする
個人的には常に NotImplementedException にしたい
573デフォルトの名無しさん (ドコグロ MM93-HtAK)
2018/06/25(月) 12:46:36.42ID:9dNJX3N0M NotImplementedは使わないなぁ
574デフォルトの名無しさん (アウアウエー Sa7f-3IMT)
2018/06/25(月) 12:58:28.80ID:G9vuY89la NotImplementedException は↓の人の意見だと本当は実装すべきなのに何かの都合でまだ
未実装の場合に使うらしいね。正しいかどうかは知らない
http://yfakariya.blogspot.com/2011/07/blog-post.html
同じNotでもNotImplementedは「未」実装、NotSupportedは「非」サポートってのは分かりづらいっす
未実装の場合に使うらしいね。正しいかどうかは知らない
http://yfakariya.blogspot.com/2011/07/blog-post.html
同じNotでもNotImplementedは「未」実装、NotSupportedは「非」サポートってのは分かりづらいっす
575デフォルトの名無しさん (ワッチョイ 7fe9-5Tpg)
2018/06/25(月) 13:00:29.11ID:5ya7SPIm0 細かいけどコンパイルエラー回避のためにthrowする、ってのは違くない?
現実問題そんな感じになってしまうことはあるけど理想はコンパイラの都合に合わせたコードなんて無いほうがいいんだから
現実問題そんな感じになってしまうことはあるけど理想はコンパイラの都合に合わせたコードなんて無いほうがいいんだから
576568 (ワッチョイ 9f8a-DJU/)
2018/06/25(月) 13:23:21.50ID:vUyRGEqk0 >>569
>InvalidOperationException, NotSupportedException, ArgumentException, NotImplementedException
これらの例外は自クラスには非はなく、呼んだ側の使い方が間違っているといった感じの例外に見えますが
そんなにこだわらなくていいんでしょうか
public class MyClass
{
public class BugException: System.SystemException{}
public void buggedmethod() { ... throw new BugException(); }
}
これで良ければ1行で定義できて1番明快に思えますが
検索してもこんなことをやってる人は誰もいないっぽい…
>InvalidOperationException, NotSupportedException, ArgumentException, NotImplementedException
これらの例外は自クラスには非はなく、呼んだ側の使い方が間違っているといった感じの例外に見えますが
そんなにこだわらなくていいんでしょうか
public class MyClass
{
public class BugException: System.SystemException{}
public void buggedmethod() { ... throw new BugException(); }
}
これで良ければ1行で定義できて1番明快に思えますが
検索してもこんなことをやってる人は誰もいないっぽい…
577デフォルトの名無しさん (ブーイモ MM0f-STG2)
2018/06/25(月) 14:49:07.56ID:o35Q9ijAM578デフォルトの名無しさん (ワントンキン MMdf-h3K6)
2018/06/25(月) 18:07:26.16ID:dM1+XD4cM MissingCaseException
を自作でいいのでは?
を自作でいいのでは?
579デフォルトの名無しさん (アウアウエー Sa7f-3IMT)
2018/06/25(月) 18:51:31.43ID:uZsljbpsa >>577
なるほどそうかも
関係ないけど、いつも思うけどあるインターフェイスを継承してるのに
そのインターフェイスのメソッド使ったらNotSupportedExceptionが飛んでくるって設計は
なんか不条理を感じるのは俺だけかなあw
インターフェイスって契約じゃなかったのかよw
なるほどそうかも
関係ないけど、いつも思うけどあるインターフェイスを継承してるのに
そのインターフェイスのメソッド使ったらNotSupportedExceptionが飛んでくるって設計は
なんか不条理を感じるのは俺だけかなあw
インターフェイスって契約じゃなかったのかよw
580デフォルトの名無しさん (アウアウカー Sa93-CDaA)
2018/06/25(月) 19:32:38.95ID:gMkOZD8Wa InvalidEnumArgumentExceptionは?
581デフォルトの名無しさん (アウアウカー Sa93-CDaA)
2018/06/25(月) 19:39:55.82ID:gMkOZD8Wa 実装側の問題なら>>577でよさそう
582デフォルトの名無しさん (ドコグロ MM7f-MaHJ)
2018/06/25(月) 20:13:43.81ID:HTnjHonAM583デフォルトの名無しさん (ワッチョイ 7f96-qn6i)
2018/06/25(月) 21:43:12.62ID:xJKhLBIA0 Debugクラスのメソッドはリリース版のとき消えます、素通りします
Debug.Fail() は起こりえない状況であり、かつ、素通りしても問題ない箇所、
またはリカバリ処理を行っている箇所にしか使用できません
基本は例外か Trace.Fail() を使用するべきです
Debug.Fail() を使用して問題ないのは具体的には下記の条件に当てはまるときぐらいだと思います
・『絶対』に起こらないことを目視や単体テストで確認した上で、後続のコードでリカバリ処理を行っている箇所で、
開発によってコードが壊れてないかチェックするためにコードに挿入する
(絶対に発生しないので単体テストを行う場合は #if で慎重にコードを切り替えてエラー状態を再現することになります)
つまり、リカバリ処理してるなら Debug.Fail() は入れなくても問題ないはずです
Debug.Fail() は起こりえない状況であり、かつ、素通りしても問題ない箇所、
またはリカバリ処理を行っている箇所にしか使用できません
基本は例外か Trace.Fail() を使用するべきです
Debug.Fail() を使用して問題ないのは具体的には下記の条件に当てはまるときぐらいだと思います
・『絶対』に起こらないことを目視や単体テストで確認した上で、後続のコードでリカバリ処理を行っている箇所で、
開発によってコードが壊れてないかチェックするためにコードに挿入する
(絶対に発生しないので単体テストを行う場合は #if で慎重にコードを切り替えてエラー状態を再現することになります)
つまり、リカバリ処理してるなら Debug.Fail() は入れなくても問題ないはずです
584568 (ワッチョイ 618a-VCRa)
2018/06/28(木) 16:32:42.98ID:mhaIhaYV0 遅くなりましたが例外とログの使い方大変参考になりました。
ありがとうございます。
ありがとうございます。
585デフォルトの名無しさん (ワッチョイ 45fa-2e90)
2018/07/04(水) 22:15:33.33ID:gFgZc5FG0 81F
586デフォルトの名無しさん (ワッチョイ 7f9a-rubz)
2018/07/11(水) 23:46:27.39ID:wZEnBA6P0 隔離用のスレとはいえ下がりすぎなので上げとく
587デフォルトの名無しさん (JP 0Hc9-+kVx)
2018/07/12(木) 02:43:18.10ID:VF8Jnm1rH 超初心者ですが
RectangleとかPointとかって、値型?
値型ってコンストラクタに引数渡せないって、さっき、読んだけど
RectangleとかPointとかって、値型?
値型ってコンストラクタに引数渡せないって、さっき、読んだけど
588デフォルトの名無しさん (ワッチョイ 59e3-LQig)
2018/07/12(木) 20:29:08.90ID:LFvEI7az0589デフォルトの名無しさん (ササクッテロル Spbd-p+0f)
2018/07/12(木) 21:32:30.73ID:wWmeulvip 単なる構造体にインスタンスもくそもないからな。
590デフォルトの名無しさん (ブーイモ MM8e-LQig)
2018/07/14(土) 09:57:07.24ID:AoeZKvgvM 構造体は初期化が0フィルだから
フィールドが非null値の場合はどうなるのかはしらない
フィールドが非null値の場合はどうなるのかはしらない
591デフォルトの名無しさん (ブーイモ MMc9-hVvx)
2018/07/14(土) 10:59:20.35ID:21Pqhes0M 型のデフォルト値でね?
592デフォルトの名無しさん (ワッチョイ a5b3-8eTX)
2018/07/14(土) 11:24:43.76ID:td9rD4BU0 Visual Studio 2017
合計 90 日間が過ぎました。
無料で使いたいんですが、どうすれば良いでしょうか?
合計 90 日間が過ぎました。
無料で使いたいんですが、どうすれば良いでしょうか?
593デフォルトの名無しさん (ワッチョイ f14a-RHBg)
2018/07/14(土) 11:27:35.51ID:trGcxTua0 無料の使ってください
594デフォルトの名無しさん (ワッチョイ 6681-/VsX)
2018/07/14(土) 11:29:07.89ID:1NIDWWGu0 90日ってことは有償版だろ
大人しく買えよ
もしくはCommunity版を検討する
大人しく買えよ
もしくはCommunity版を検討する
595デフォルトの名無しさん (ワッチョイ 6917-LQig)
2018/07/14(土) 11:36:04.11ID:EtwCAyCb0 >>592
どうしても有償版を使い続けたいのなら期限が切れるたびにWindowsを再インストールすればOK
どうしても有償版を使い続けたいのなら期限が切れるたびにWindowsを再インストールすればOK
596デフォルトの名無しさん (ワッチョイ a5b3-8eTX)
2018/07/14(土) 12:06:05.24ID:td9rD4BU0 Community版に移行する事にしました。
ありがとうございます
ありがとうございます
597デフォルトの名無しさん (ワッチョイ 6a9d-X7oo)
2018/07/14(土) 23:26:56.12ID:mNPit/gT0 Communityって登録しないと期限とかなかったっけ
598デフォルトの名無しさん (ワッチョイ 6681-/VsX)
2018/07/15(日) 01:08:37.15ID:WCfEKFtx0 Microsoftアカウントを登録しないと30日
599デフォルトの名無しさん (ワッチョイ 6db5-p+0f)
2018/07/15(日) 11:14:40.73ID:GMJtRfj30 サブスクリプションで全シリーズ揃えてる俺に死角無し。
600デフォルトの名無しさん (ブーイモ MM7b-klHS)
2018/07/22(日) 16:05:05.76ID:bsqxWqeBM >>599
VS-4.2くれ
VS-4.2くれ
601デフォルトの名無しさん (ササクッテロル Spc7-Bhrm)
2018/08/02(木) 11:31:31.36ID:ijDqx/PBp Entity Framework Coreについて質問です。
以下のように1対多の入れ子(left join)になったデータを取ってくる場合で、一番最下層のテーブルに取得条件を追加したいです。
どのようにしてwhereメソッドを書けばよいでしょうか。
.Include(x => x.Departments)
.ThenInclude(x => x.Groups)
.ThenInclude(x => x.SubGroups)
.ThenInclude(x => x.Employees)
.ThenInclude(x => x.Skills)
例えば以下のような感じです。
Skill.ExpireDate >= DateTime.Today
それぞれのプロパティはコレクションのため以下のようには書くことができません
Where(x => x.Departments.Groups.SubGroups.Employees.Skills.ExpireDate >= DateTime.Today)
ThenIncludeで指定しているプロパティがすべて列挙でなければ以下のように書けると思うのですが・・・
Where(x => x.Department.Group.SubGroup.Employee.Skill.ExpireDate >= DateTime.Today)
それぞれの階層のクラスは全プロパティ取得することを想定しています。
Entity Framework Coreで実現可能でしょうか。
以下のように1対多の入れ子(left join)になったデータを取ってくる場合で、一番最下層のテーブルに取得条件を追加したいです。
どのようにしてwhereメソッドを書けばよいでしょうか。
.Include(x => x.Departments)
.ThenInclude(x => x.Groups)
.ThenInclude(x => x.SubGroups)
.ThenInclude(x => x.Employees)
.ThenInclude(x => x.Skills)
例えば以下のような感じです。
Skill.ExpireDate >= DateTime.Today
それぞれのプロパティはコレクションのため以下のようには書くことができません
Where(x => x.Departments.Groups.SubGroups.Employees.Skills.ExpireDate >= DateTime.Today)
ThenIncludeで指定しているプロパティがすべて列挙でなければ以下のように書けると思うのですが・・・
Where(x => x.Department.Group.SubGroup.Employee.Skill.ExpireDate >= DateTime.Today)
それぞれの階層のクラスは全プロパティ取得することを想定しています。
Entity Framework Coreで実現可能でしょうか。
602デフォルトの名無しさん (アウアウウー Saa7-0Uuo)
2018/08/02(木) 12:14:20.65ID:jJXbX9Nfa その条件ならテーブルを上からたどる必要はないのかと
603デフォルトの名無しさん (ササクッテロル Spc7-Bhrm)
2018/08/02(木) 12:30:22.50ID:ijDqx/PBp604デフォルトの名無しさん (ワッチョイ ff9d-w5ex)
2018/08/02(木) 13:06:25.80ID:CFW8XzdE0 どうしても上からたどりたいなら
WhereとAnyで掘り下げていくとか
SelectManyで平坦化するとかか
WhereとAnyで掘り下げていくとか
SelectManyで平坦化するとかか
605デフォルトの名無しさん (ササクッテロル Spc7-Bhrm)
2018/08/02(木) 15:11:34.29ID:ijDqx/PBp いえ、辿りたいわけではなくて、辿らないとできないと勝手に思ってただけです
辿らなくて良いなら辿らないでやれればベストです。
ですがその方法がわからないので教えてもらえませんでしょうか。
辿らなくて良いなら辿らないでやれればベストです。
ですがその方法がわからないので教えてもらえませんでしょうか。
606デフォルトの名無しさん (ワッチョイ 8f9f-LI4B)
2018/08/02(木) 21:52:06.55ID:nmSSZypj0 var q = _context.Hoges.FromSql($@"
select H.* from Hoges H where exists (
select null from Departments D where H.DeptId = D.DeptId and exists (
select null from Groups G where D.DeptId = G.DeptId and exists (
select null from SubGroups SG where G.GrpId = SG.GrpId and exists (
select null from Employees E where SG.SGrpId = E.SGrpId and exists (
select null from Skills SK where E.EmpId = SK.EmpId and SK.ExpireDate >= {DateTime.Today}
)))))
");
var hoges = q.Include(x => x.Departments)
.ThenInclude(x => x.Groups)
.ThenInclude(x => x.SubGroups)
.ThenInclude(x => x.Employees)
.ThenInclude(x => x.Skills)
.ToList();
select H.* from Hoges H where exists (
select null from Departments D where H.DeptId = D.DeptId and exists (
select null from Groups G where D.DeptId = G.DeptId and exists (
select null from SubGroups SG where G.GrpId = SG.GrpId and exists (
select null from Employees E where SG.SGrpId = E.SGrpId and exists (
select null from Skills SK where E.EmpId = SK.EmpId and SK.ExpireDate >= {DateTime.Today}
)))))
");
var hoges = q.Include(x => x.Departments)
.ThenInclude(x => x.Groups)
.ThenInclude(x => x.SubGroups)
.ThenInclude(x => x.Employees)
.ThenInclude(x => x.Skills)
.ToList();
607デフォルトの名無しさん (ワッチョイ 6fe9-zcWg)
2018/08/03(金) 07:33:44.44ID:TQSHsawm0 以下のコードはどういう内容なのでしょうか?
public IList<float> Plus214_Output_0 { get; set; }
特に
<float>、 { get; set; }
が分かりませんでした
以下の一部になります
https://github.com/Microsoft/Windows-Machine-Learning/blob/master/Samples/UWP/MNIST/src/MNIST.cs
public IList<float> Plus214_Output_0 { get; set; }
特に
<float>、 { get; set; }
が分かりませんでした
以下の一部になります
https://github.com/Microsoft/Windows-Machine-Learning/blob/master/Samples/UWP/MNIST/src/MNIST.cs
608デフォルトの名無しさん (アウアウウー Saa7-alMy)
2018/08/03(金) 07:54:13.63ID:/ayVy0z+a >>607
前者は「ジェネリック」、後者は「自動実装プロパティ」でググれ
前者は「ジェネリック」、後者は「自動実装プロパティ」でググれ
609デフォルトの名無しさん (ワッチョイ 6fe9-zcWg)
2018/08/03(金) 07:55:39.91ID:TQSHsawm0 >>608
ありがとうございます!めっちゃ助かりました!
ありがとうございます!めっちゃ助かりました!
610デフォルトの名無しさん (ワッチョイ ff58-0Uuo)
2018/08/07(火) 20:55:48.43ID:7nA6P5yg0 Linqでの書き方で質問なのですが
同じサイズのdataAとdataBのデータがあるとして
データが違う箇所のIndexを取り出すとしたらどう書けば良いでしょうか?
今は↓のようなコードになっています。
List<int> dataA = new List<int>() { 1, 2, 3, 4, 5, 6 };
List<int> dataB = new List<int>() { 1, 2, 4, 3, 5, 6 };
bool resultAB = dataA.SequenceEqual( dataB);
if(resultAB = false)
{
foreach(var A in dataA)
{
比較処理
}
}
結果
2
3
同じサイズのdataAとdataBのデータがあるとして
データが違う箇所のIndexを取り出すとしたらどう書けば良いでしょうか?
今は↓のようなコードになっています。
List<int> dataA = new List<int>() { 1, 2, 3, 4, 5, 6 };
List<int> dataB = new List<int>() { 1, 2, 4, 3, 5, 6 };
bool resultAB = dataA.SequenceEqual( dataB);
if(resultAB = false)
{
foreach(var A in dataA)
{
比較処理
}
}
結果
2
3
611デフォルトの名無しさん (ワッチョイ b3e3-10BI)
2018/08/07(火) 21:22:20.14ID:UKw4EMmv0 >>610
ない頭絞って考えてみた。
Enumerable.Range(0, dataA.Count()).Where(p => dataA[p] != dataB[p]);
やら
dataA.Select((v, i) => new { value = v, index = i }).Where(p => p.value != dataB[p.index]).Select(p => p.index);
どっちも汚い。もっと賢いのおしえろください
ない頭絞って考えてみた。
Enumerable.Range(0, dataA.Count()).Where(p => dataA[p] != dataB[p]);
やら
dataA.Select((v, i) => new { value = v, index = i }).Where(p => p.value != dataB[p.index]).Select(p => p.index);
どっちも汚い。もっと賢いのおしえろください
612デフォルトの名無しさん (ワッチョイ 639f-wFhy)
2018/08/07(火) 21:24:07.13ID:ly4lPw5D0 lLINQでやらんとあかんのかなんなのか
613デフォルトの名無しさん (ワッチョイ 4381-XZMm)
2018/08/07(火) 21:29:04.18ID:BzL1Bfeb0 こういうのってforで一つずつ比較するのが一番読みやすくて楽じゃね?
614611 (ワッチョイ b3e3-10BI)
2018/08/07(火) 21:35:47.39ID:UKw4EMmv0 無理矢理LINQつかってみたけど>>613に一票
615デフォルトの名無しさん (ワッチョイ 639a-7rws)
2018/08/07(火) 21:36:11.45ID:q6HoXiPg0616デフォルトの名無しさん (ワッチョイ ff58-0Uuo)
2018/08/07(火) 21:41:47.05ID:7nA6P5yg0 dataAとdataBが1000件以上あるので、まず単純に変更してるのがあるか?で
SequenceEqualを使ってみた流れでLINQを調べていた流れで知りたかったです。
forで書くのがわかりやすいとは思うけど、LINQでもっとうまく書けるかなと思って
>>611参考になりました。ありがとうございます!
SequenceEqualを使ってみた流れでLINQを調べていた流れで知りたかったです。
forで書くのがわかりやすいとは思うけど、LINQでもっとうまく書けるかなと思って
>>611参考になりました。ありがとうございます!
617デフォルトの名無しさん (ワッチョイ 539e-e/QH)
2018/08/07(火) 21:43:44.13ID:5i41CNK00 for では、比較されるレコードが送られてくるけど、
LINQ では、答えしか送られてこないから、効率的
LINQ では、答えしか送られてこないから、効率的
618デフォルトの名無しさん (アウアウカー Sa07-kkiZ)
2018/08/07(火) 23:11:20.30ID:EHUuk9/6a zip使えばいいんでね?
619デフォルトの名無しさん (ワッチョイ 8f9f-I2NA)
2018/08/07(火) 23:26:49.96ID:WUtnzCvr0 Linqのほうがわかりやすいし、ソースがランダムアクセスできるとも限らんだろ
シーケンスを束ねてインデックス振って比較して違うやつだけ取り出してインデックスを取り出す
Linqなら思ったことをそのまま書けばいい
IEnumerable<int> Hoge<T>(IEnumerable<T> a, IEnumerable<T> b) {
var comp = Comparer<T>.Default;
return a.Zip(b, (x, y) => (x, y)) // シーケンスを束ねて
.Select((e, i) => (i, e.x, e.y)) // インデックス振って
.Where(e => comp.Compare(e.x, e.y) != 0) // 比較して違うやつだけ取り出して
.Select(e => e.i); // インデックスを取り出す
}
ループじゃぱっとみ何やってるかわかんねえよ
シーケンスを束ねてインデックス振って比較して違うやつだけ取り出してインデックスを取り出す
Linqなら思ったことをそのまま書けばいい
IEnumerable<int> Hoge<T>(IEnumerable<T> a, IEnumerable<T> b) {
var comp = Comparer<T>.Default;
return a.Zip(b, (x, y) => (x, y)) // シーケンスを束ねて
.Select((e, i) => (i, e.x, e.y)) // インデックス振って
.Where(e => comp.Compare(e.x, e.y) != 0) // 比較して違うやつだけ取り出して
.Select(e => e.i); // インデックスを取り出す
}
ループじゃぱっとみ何やってるかわかんねえよ
620デフォルトの名無しさん (ワッチョイ 63d2-LrSd)
2018/08/07(火) 23:31:30.75ID:kuothdai0621デフォルトの名無しさん (ワッチョイ cfe8-Xflc)
2018/08/07(火) 23:35:51.16ID:vAj7NHSO0 LINQってEntityFrameworkでしか用途なくねえ?
622デフォルトの名無しさん (ワッチョイ ffd2-VIZ/)
2018/08/07(火) 23:37:10.34ID:9e6mZaIW0 >>621
は?
は?
623デフォルトの名無しさん (ワッチョイ 639f-wFhy)
2018/08/07(火) 23:40:05.44ID:ly4lPw5D0624デフォルトの名無しさん (アウアウエー Sadf-Eypl)
2018/08/08(水) 00:39:26.55ID:cXv1v5r0a >>619
うーん、普通にこっちのほうが分かりやすいと思うけどw
別にLINQ否定派じゃないよ
IEnumerable<int> GetIndices()
{
List<int> dataA = new List<int>() { 1, 2, 3, 4, 5, 6 };
List<int> dataB = new List<int>() { 1, 2, 4, 3, 5, 6 };
for (int i = 0; i < dataA.Count; i++)
if (dataA[i] != dataB[i]) yield return i;
}
うーん、普通にこっちのほうが分かりやすいと思うけどw
別にLINQ否定派じゃないよ
IEnumerable<int> GetIndices()
{
List<int> dataA = new List<int>() { 1, 2, 3, 4, 5, 6 };
List<int> dataB = new List<int>() { 1, 2, 4, 3, 5, 6 };
for (int i = 0; i < dataA.Count; i++)
if (dataA[i] != dataB[i]) yield return i;
}
625デフォルトの名無しさん (ワッチョイ 338a-Xflc)
2018/08/08(水) 03:30:51.92ID:x4iNladl0 Zipしたものをforeachで回すのが一番自然
IEnumerable<int> Hoge(IEnumerable<int> A, IEnumerable<int> B)
{
var i = 0;
foreach (var eq in A.Zip(B, (a, b) => a == b))
{
if (!eq) yield return i;
i++;
}
}
自分はやらんけどLinqならこう
dataA.Zip(dataB, (a, b) => a == b).Select((eq, i) => eq ? -1 : i).Where(i => i >= 0);
IEnumerable<int> Hoge(IEnumerable<int> A, IEnumerable<int> B)
{
var i = 0;
foreach (var eq in A.Zip(B, (a, b) => a == b))
{
if (!eq) yield return i;
i++;
}
}
自分はやらんけどLinqならこう
dataA.Zip(dataB, (a, b) => a == b).Select((eq, i) => eq ? -1 : i).Where(i => i >= 0);
626611 (ワッチョイ b3e3-MBU+)
2018/08/08(水) 05:09:02.93ID:9ryRYesD0 Zip知らんかったわー。超参考にする。
627デフォルトの名無しさん (スップ Sd1f-Bh6x)
2018/08/08(水) 13:38:09.59ID:CtU8HUVGd インデックスが必要な時、わざわざselect挟んでインデックス貼るの馬鹿らしい感じがして好きになれないんだけど仕方ないよね?
そんなにインデックスを参照することが多いなら生成時に一緒に貼っとけって話かもしれんが…
そもそもlinqマスターはインデックスを必要としない設計にいつもなるの?
自分もインデックスが無くて済むように考えるけど結果的に必要になる箇所が細部で出てくるんだよね
そんなにインデックスを参照することが多いなら生成時に一緒に貼っとけって話かもしれんが…
そもそもlinqマスターはインデックスを必要としない設計にいつもなるの?
自分もインデックスが無くて済むように考えるけど結果的に必要になる箇所が細部で出てくるんだよね
628デフォルトの名無しさん (スプッッ Sd1f-hmJy)
2018/08/08(水) 14:08:00.53ID:csO2M6exd どうしても必要な時はselect((value, index) => new {V = value, I = index})でインデックス引っ張ってるわ
それでもインデックス欲しい条件1行で書けるのが楽だからLinq便利派だけども
それでもインデックス欲しい条件1行で書けるのが楽だからLinq便利派だけども
629デフォルトの名無しさん (スップ Sd1f-Bh6x)
2018/08/08(水) 14:25:20.52ID:CtU8HUVGd >>628
俺もそれ、ちょくちょくするんだけどforで回したほうがよくね?って思っちゃうことがあるんだよね
もちろん処理によりけりと言ってしまえばそれまでなんだけど
比較するようなもんじゃないかもしれんがjavascriptなんかだと大抵インデックス取れるから、そっち触ったあとにC#に戻ると処理考えるときにインデックスありきで考えがちになっちゃう気がしてる
俺もそれ、ちょくちょくするんだけどforで回したほうがよくね?って思っちゃうことがあるんだよね
もちろん処理によりけりと言ってしまえばそれまでなんだけど
比較するようなもんじゃないかもしれんがjavascriptなんかだと大抵インデックス取れるから、そっち触ったあとにC#に戻ると処理考えるときにインデックスありきで考えがちになっちゃう気がしてる
630デフォルトの名無しさん (スップ Sd1f-Bh6x)
2018/08/08(水) 14:32:55.42ID:CtU8HUVGd 先に出てた課題でもzipしたあと、そのままlinqで処理を完結させるか、zip後にforで回すか
個人的にはzipがどちらにせよ入るなら最後までlinqの方が1つの処理を1つの手法で解決してる感じがして好き
だけどインデックスが処理に必要だからfor使いたいって気持ちもわかる
個人的にはzipがどちらにせよ入るなら最後までlinqの方が1つの処理を1つの手法で解決してる感じがして好き
だけどインデックスが処理に必要だからfor使いたいって気持ちもわかる
631デフォルトの名無しさん (スプッッ Sd1f-hmJy)
2018/08/08(水) 14:53:36.93ID:bbTjp3FCd632デフォルトの名無しさん (ワッチョイ 338a-Xflc)
2018/08/08(水) 15:07:53.10ID:x4iNladl0 こういう拡張メソッド作っておくのはたまにやる
public static IEnumerable<int> WhereIndex<T>(this IEnumerable<T> self, Func<T, bool> predicate)
{
var i = 0;
foreach(var s in self)
{
if(predicate(s)) yield return i;
i++;
}
}
dataA.Zip(dataB, (a, b) => a == b).WhereIndex(eq => !eq);
拡張メソッド嫌いな人もいるだろうけど一番読みやすい
わざわざSelectでインデックスつけてる冗長さもないし、添字アクセスもないし、使う時はすっきり意味がわかりやすい
public static IEnumerable<int> WhereIndex<T>(this IEnumerable<T> self, Func<T, bool> predicate)
{
var i = 0;
foreach(var s in self)
{
if(predicate(s)) yield return i;
i++;
}
}
dataA.Zip(dataB, (a, b) => a == b).WhereIndex(eq => !eq);
拡張メソッド嫌いな人もいるだろうけど一番読みやすい
わざわざSelectでインデックスつけてる冗長さもないし、添字アクセスもないし、使う時はすっきり意味がわかりやすい
633デフォルトの名無しさん (ブーイモ MMa7-A/YO)
2018/08/08(水) 16:44:49.34ID:Gn4Y43YUM >>632
正直クソ分かりにくい
俺がレビューしたらリジェクトするわ
WhereIndexというメソッド名を見たら大抵の人はインデックスをフィルタ条件にして要素の値を返すメソッドと誤解する
そもそもメソッド名以前に、LINQって普通はキーやインデックスではなく要素の値を操作していくものっていう暗黙的了解があるから、
キーやインデックスの方を返すような操作については特に念入りにそれがわかるような明示的な表記になるように工夫したほうがいい
正直クソ分かりにくい
俺がレビューしたらリジェクトするわ
WhereIndexというメソッド名を見たら大抵の人はインデックスをフィルタ条件にして要素の値を返すメソッドと誤解する
そもそもメソッド名以前に、LINQって普通はキーやインデックスではなく要素の値を操作していくものっていう暗黙的了解があるから、
キーやインデックスの方を返すような操作については特に念入りにそれがわかるような明示的な表記になるように工夫したほうがいい
634デフォルトの名無しさん (ブーイモ MMff-3LBS)
2018/08/08(水) 17:02:43.62ID:0wIwbQiXM SelectIndexWhere()ならどうか。英国紳士にも通じると思う
635デフォルトの名無しさん (ドコグロ MM07-wFhy)
2018/08/08(水) 17:20:32.65ID:o48M+fLoM SelectWithIndexやな
636デフォルトの名無しさん (アウアウウー Saa7-A/YO)
2018/08/08(水) 17:26:15.62ID:icN1uiHAa SelectIndexFilteredByValue
これでもパッと見 ? となる人は多そう
これでもパッと見 ? となる人は多そう
637デフォルトの名無しさん (アウアウエー Sadf-Eypl)
2018/08/08(水) 17:40:49.62ID:Uqgxm++Va638デフォルトの名無しさん (スプッッ Sd47-VIZ/)
2018/08/08(水) 18:11:22.97ID:ucfZkVugd >>637
誰が動詞じゃないとおかしいって?
誰が動詞じゃないとおかしいって?
639デフォルトの名無しさん (ワッチョイ 338a-Xflc)
2018/08/08(水) 18:27:19.45ID:x4iNladl0 >>633
>WhereIndexというメソッド名を見たら大抵の人はインデックスをフィルタ条件にして要素の値を返すメソッドと誤解する
そんなのはWhereでできるし
>LINQって普通はキーやインデックスではなく要素の値を操作していくものっていう暗黙的了解があるから、
>キーやインデックスの方を返すような操作については
それもSelectでできるし
だいたい要素の値を操作していくものっていう暗黙的了解があるならWhereIndexも要素の値が対象と思うんじゃない?
なんか矛盾してね?
>WhereIndexというメソッド名を見たら大抵の人はインデックスをフィルタ条件にして要素の値を返すメソッドと誤解する
そんなのはWhereでできるし
>LINQって普通はキーやインデックスではなく要素の値を操作していくものっていう暗黙的了解があるから、
>キーやインデックスの方を返すような操作については
それもSelectでできるし
だいたい要素の値を操作していくものっていう暗黙的了解があるならWhereIndexも要素の値が対象と思うんじゃない?
なんか矛盾してね?
640デフォルトの名無しさん (ワッチョイ 338a-Xflc)
2018/08/08(水) 19:23:56.51ID:x4iNladl0 ほぼ同じ拡張メソッドでIndexWhereのが引っかかったわ
多分こっちの方が自然なんだろうな
一応候補だったんだが自分的にしっくりこなかったけど
多分こっちの方が自然なんだろうな
一応候補だったんだが自分的にしっくりこなかったけど
641デフォルトの名無しさん (ワッチョイ 4e9f-+CD1)
2018/08/09(木) 21:27:13.79ID:s67NkejU0 >>629
ランダムアクセスできるとは限らんしっていうかLinqだとほとんど出来ない
ランダムアクセスできるとは限らんしっていうかLinqだとほとんど出来ない
642デフォルトの名無しさん (ワッチョイ 5ae9-8ulZ)
2018/08/09(木) 22:09:58.32ID:VdJ1XdFa0 >>641
ランダムアクセスできないコレクション扱うときにインデックスが欲しくなるケースってなかなか無いと思うけど
ランダムアクセスできないコレクション扱うときにインデックスが欲しくなるケースってなかなか無いと思うけど
643デフォルトの名無しさん (ワッチョイ 4e9f-+CD1)
2018/08/10(金) 23:12:00.00ID:AJVeRJgN0 >>642
ランキングとかページングとかか?
ランキングとかページングとかか?
644デフォルトの名無しさん (ワッチョイ de81-8ulZ)
2018/08/11(土) 00:11:00.13ID:p6HuaRWz0 >>643
それってインデックスつけることが一つの目的じゃない?
インデックスってかソートかな?
いろんなところでいろんな処理されるコレクションがあって、その処理の殆どにインデックスが不要だけどごく一部にインデックスがほしいとき、わざわざ1行追加するのスッキリしないなぁって感じ
たった1行なんだから書きゃいいんすよ?
それはわかってるけどなんか気持ち悪いなぁって気がするだけ
それってインデックスつけることが一つの目的じゃない?
インデックスってかソートかな?
いろんなところでいろんな処理されるコレクションがあって、その処理の殆どにインデックスが不要だけどごく一部にインデックスがほしいとき、わざわざ1行追加するのスッキリしないなぁって感じ
たった1行なんだから書きゃいいんすよ?
それはわかってるけどなんか気持ち悪いなぁって気がするだけ
645デフォルトの名無しさん (ワッチョイ 4e9f-+CD1)
2018/08/11(土) 12:41:19.45ID:YyI+aygL0 ほとんど必要が無いインデックスだけど
ごく稀に必要になるから必要になるところでだけインデックスを追加するんだろ
ほとんど使わないインデックスのためにずっとランダムアクセス性を維持するとか無駄じゃん
ごく稀に必要になるから必要になるところでだけインデックスを追加するんだろ
ほとんど使わないインデックスのためにずっとランダムアクセス性を維持するとか無駄じゃん
646デフォルトの名無しさん (アウアウエー Sac2-XPKg)
2018/08/11(土) 14:21:00.05ID:WHbJdrO8a 何を言ってるのか意味が分からんけど、indexって言葉の意味を知ってて言ってるのかなそれw
647デフォルトの名無しさん (ワッチョイ de81-8ulZ)
2018/08/11(土) 14:23:04.22ID:p6HuaRWz0■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★4 [ぐれ★]
- 中国の局長は「両手をポケット」で対峙 宣伝戦で国民に示す ★3 [蚤の市★]
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 【大分】佐賀関で大規模火災、170棟以上が延焼中 70代男性1人と連絡取れず [ぐれ★]
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 「クマはなるべく山に返す努力を」「クマと戦争は間違っている」動物保護活動家の主張 棲み分けと学習放獣でクマ被害なくなるのか?★7 [ぐれ★]
- とらせん IPあり
- 【DAZN】ワールドカップ欧州予選総合 ★5
- 巨専】
- こいせん 全レス転載禁止
- 侍ジャパンシリーズ2025「日本vs韓国」その12
- 【J SPORTS】FIFA U-17ワールドカップ ★10
- 高市「次回選挙争点は台湾有事よ!!」自民立憲公明維新国民「やめろーー!!」これが現実になりそうな件 [469534301]
- 経済保安相「気に入らないことがあれば経済的威圧をする国への依存はリスク」日本さん遂にアメリカと断交へ!!! [472617201]
- 自閉症が「んなっしょい」と連呼するお🏡
- 「世の中、バカが多くて疲れません?」👉1991年日本人大発狂 [543236886]
- アンケート調査で「高市発言は問題なし」 93.5%wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
- 来年は卵が1パック400円以上になるらしい
