!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part148
https://mevius.5ch.net/test/read.cgi/tech/1590578921/
■関連スレ
C#, C♯, C#相談室 Part94
https://mevius.5ch.net/test/read.cgi/tech/1553075856/
■コードを貼る場合は↓を使いましょう。
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/
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#(初心者用) Part149
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (ワキゲー MMca-Gz4g)
2020/12/16(水) 11:29:35.35ID:TSvQ057dM908デフォルトの名無しさん (ワッチョイ fb02-kkZq)
2021/03/08(月) 20:54:37.86ID:qzvxIX+G0 >>907
どうやればいいんでしょうか?
どうやればいいんでしょうか?
909デフォルトの名無しさん (ワッチョイ 3b33-YXAD)
2021/03/08(月) 21:39:32.19ID:lsfVgCLC0 >>908
理解せず簡単に済ますなら900の方法か、
UIスレッドから新しいTaskを作って、そのタスク内で非同期メソッドの結果をawaitして、UIスレッドは作ったTaskのResultを取得すれば良い。
理解せず簡単に済ますなら900の方法か、
UIスレッドから新しいTaskを作って、そのタスク内で非同期メソッドの結果をawaitして、UIスレッドは作ったTaskのResultを取得すれば良い。
910デフォルトの名無しさん (ワッチョイ fb02-kkZq)
2021/03/09(火) 02:15:52.82ID:Km1Y7VEG0 >>909
900さんの方法でもイケるんですね。ありがとうございます。
あとこんな風にやったら一応自分が求めてる感じにもなりました。
Invoke((MethodInvoker)(async () => {
var task = await func();
}));
900さんの方法でもイケるんですね。ありがとうございます。
あとこんな風にやったら一応自分が求めてる感じにもなりました。
Invoke((MethodInvoker)(async () => {
var task = await func();
}));
911デフォルトの名無しさん (アウアウウー Sa0f-kkZq)
2021/03/09(火) 13:25:20.94ID:/HWklS3sa >>887
これ、今更だけど
var radius = 1.0;
Task<double> task = null;
Task.Run(() => task = CalculateCircleAreaAsync(radius)).Wait();
var area = task.Result;
じゃいかんのかな知らんけど。
しかし、非同期メソッドの結果をawaitせずに求めるなんて考えたこともなかったし、
一瞬そんなの簡単だろと思ったけど意外と面倒なのね。
というか非同期メソッドの戻り値は呼び出し元のスレッドで実行される自分自身になるのな。
っていうか、>>891の引用元のコードはバグ?
何年も前の記事なのに誰も突っ込んでないのかな
これ、今更だけど
var radius = 1.0;
Task<double> task = null;
Task.Run(() => task = CalculateCircleAreaAsync(radius)).Wait();
var area = task.Result;
じゃいかんのかな知らんけど。
しかし、非同期メソッドの結果をawaitせずに求めるなんて考えたこともなかったし、
一瞬そんなの簡単だろと思ったけど意外と面倒なのね。
というか非同期メソッドの戻り値は呼び出し元のスレッドで実行される自分自身になるのな。
っていうか、>>891の引用元のコードはバグ?
何年も前の記事なのに誰も突っ込んでないのかな
912デフォルトの名無しさん (ワッチョイ ef62-FSd8)
2021/03/09(火) 14:04:19.73ID:G6YhpKjy0 引用元はコンソールアプリケーションだからな
913デフォルトの名無しさん (ワッチョイ ab01-YXAD)
2021/03/09(火) 19:16:54.66ID:v67EGRm00 独習C#でもコンソールアプリ以外だとデッドロックするコードが書いてあるからな。
914デフォルトの名無しさん (アウアウウー Sa0f-kkZq)
2021/03/09(火) 21:21:04.94ID:mjd4ZCLWa コンソールかどうか関係ある?
コンソールだろうが何だろうが、「自分が宿題をやり終わるのを寝ながら待つ」子は
死ぬまで宿題完成しないでしょ。
コンソールだろうが何だろうが、「自分が宿題をやり終わるのを寝ながら待つ」子は
死ぬまで宿題完成しないでしょ。
915デフォルトの名無しさん (ワッチョイ 4b2d-0RAh)
2021/03/09(火) 21:25:50.24ID:zZk3I07S0916デフォルトの名無しさん (ワッチョイ ef62-FSd8)
2021/03/09(火) 21:40:53.62ID:G6YhpKjy0 なんでタスクで実行すればデッドロックが発生しないか理解してなさそう
こことか分かりやすく書いてくれてるから見てくるといい
ttps://chronoir.net/cs-async-await-taskrun/
こことか分かりやすく書いてくれてるから見てくるといい
ttps://chronoir.net/cs-async-await-taskrun/
917デフォルトの名無しさん (アウアウウー Sa0f-kkZq)
2021/03/09(火) 21:43:31.37ID:mjd4ZCLWa918デフォルトの名無しさん (ワッチョイ 9f7c-/obZ)
2021/03/09(火) 22:52:54.19ID:BIanm+fj0 そもそもTask型が帰ってくるのだから非同期前提だしなぁ
言わばスレッドで実行出来る形にしましたよという事なんだし
非同期だとスレッドセーフかどうかも本来なら問題になる事ではあるけど
言わばスレッドで実行出来る形にしましたよという事なんだし
非同期だとスレッドセーフかどうかも本来なら問題になる事ではあるけど
919デフォルトの名無しさん (ワッチョイ cb24-xiWk)
2021/03/10(水) 10:40:32.47ID:ayODL1B00 stackallocが使われてる関数ってAggressiveInlining属性付けてもインライン展開されないの?
920デフォルトの名無しさん (ワッチョイ fb02-kkZq)
2021/03/11(木) 03:25:40.12ID:5JzLcMRo0 System.Web.Helpers.Json.Decode()これと同じ機能を持つのって他にないでしょうか?
使ってるとMaxJsonLength の値を超えています。とエラーがでる時があって。
使ってるとMaxJsonLength の値を超えています。とエラーがでる時があって。
921デフォルトの名無しさん (ワッチョイ fb5f-+xDJ)
2021/03/11(木) 12:01:38.32ID:YEgU3HLW0 Json.NET とか?
922デフォルトの名無しさん (ブーイモ MM8f-WiTX)
2021/03/11(木) 12:20:29.59ID:QyQtpTU4M >>920
MaxJsonLengthは設定で拡張可能
MaxJsonLengthは設定で拡張可能
923デフォルトの名無しさん (ワッチョイ fb02-kkZq)
2021/03/11(木) 16:20:05.07ID:5JzLcMRo0 921-922
ありがとうございます!
ありがとうございます!
924デフォルトの名無しさん (ワッチョイ 0bac-4pgk)
2021/03/11(木) 21:28:32.37ID:DBtckLkr0 いえいえ
925デフォルトの名無しさん (ワッチョイ a905-pfBZ)
2021/03/15(月) 11:36:48.53ID:hpWLXBIY0 C#でSocketIOサーバーを作りたいと思ったのですが、SocketIOのライブラリに思いっきりclientと書いてあるのでサーバーにはなれないんですかね?
926デフォルトの名無しさん (ワッチョイ 619b-IMun)
2021/03/15(月) 12:48:51.81ID:fhTxsYs40 表形式を扱うデータ構造といえばList<T>の入れ子、構造体、DataTableクラスとありますが
速度的に一番有利なのはどれでしょうか?
速度的に一番有利なのはどれでしょうか?
927デフォルトの名無しさん (アウアウウー Sac5-YyH6)
2021/03/15(月) 12:57:13.67ID:qxmjw6qQa 二次元配列、ジャグ配列、その他の順番でしょう。
928デフォルトの名無しさん (ワッチョイ 8da7-ABek)
2021/03/15(月) 13:14:39.26ID:dLPloTkj0 何をやるときの速度?
929デフォルトの名無しさん (ワッチョイ 619b-IMun)
2021/03/15(月) 13:19:09.67ID:fhTxsYs40 2つのテーブルから共通のコード番号を手掛かりに新しいテーブルを作る処理です
2次元配列が一番速いのですか
最初に件数をカウントしておく必要がありますね
2次元配列が一番速いのですか
最初に件数をカウントしておく必要がありますね
930デフォルトの名無しさん (ワッチョイ 8da7-ABek)
2021/03/15(月) 13:25:10.25ID:dLPloTkj0931デフォルトの名無しさん (ワッチョイ c201-Ruah)
2021/03/15(月) 15:18:17.81ID:W4mhVG7e0 >>929
SQLのJoinアルゴリズムと考え方は同じなのでそういうの解説してるサイトをググればいいんじゃない
基本はSort Merge Join, Nested Loop Join, Hash Joinの3種類
SQLのJoinアルゴリズムと考え方は同じなのでそういうの解説してるサイトをググればいいんじゃない
基本はSort Merge Join, Nested Loop Join, Hash Joinの3種類
932デフォルトの名無しさん (ワッチョイ 8284-drwQ)
2021/03/16(火) 13:43:13.37ID:ClH9askc0 >>925
使ってないからリポジトリ眺めただけだけど、Socket.IOのサーバと接続するのに
手順を簡略化できるだけで、サーバは普通にWebサーバにjavascriptとかで
作れみたいだよ
https://github.com/doghappy/socket.io-client-csharp
使ってないからリポジトリ眺めただけだけど、Socket.IOのサーバと接続するのに
手順を簡略化できるだけで、サーバは普通にWebサーバにjavascriptとかで
作れみたいだよ
https://github.com/doghappy/socket.io-client-csharp
933デフォルトの名無しさん (ワッチョイ 7d5f-qwqs)
2021/03/16(火) 21:36:32.98ID:Wl/nKXCF0 float[] array_A = new float[] { 0.2, 0.4, 0.6 };
float[] array_B = new float[] { 0.4, 0.6, 0.8 };
List<float[]> hoge = new List<float[]> { array_A, array_B };
floatの配列を要素に持つリストhogeがあったとして、配列の対応する要素の平均を算出してリストを返すスマートな方法ってありますか?
LINQでうまいことやれそうな気がしたものの、やり方が分からず今はfor文でゴリ押してしまっています
最終的にこういうリストが返ってきて欲しいです
{ 0.3, 0.5, 0.7 };
float[] array_B = new float[] { 0.4, 0.6, 0.8 };
List<float[]> hoge = new List<float[]> { array_A, array_B };
floatの配列を要素に持つリストhogeがあったとして、配列の対応する要素の平均を算出してリストを返すスマートな方法ってありますか?
LINQでうまいことやれそうな気がしたものの、やり方が分からず今はfor文でゴリ押してしまっています
最終的にこういうリストが返ってきて欲しいです
{ 0.3, 0.5, 0.7 };
934デフォルトの名無しさん (ワッチョイ 8da7-ABek)
2021/03/16(火) 21:40:37.58ID:xlIBh31U0935デフォルトの名無しさん (ワッチョイ ee63-fwr7)
2021/03/16(火) 22:22:56.72ID:6arf77iJ0 Enumerable.zipでも使っとけ
936デフォルトの名無しさん (アウアウウー Sac5-YyH6)
2021/03/17(水) 01:49:18.61ID:YSkJqwOsa Zipって上手いネーミングだよね関係ないけど
937デフォルトの名無しさん (ワッチョイ 82e4-pJz1)
2021/03/17(水) 21:54:38.73ID:96WF7Dou0 最近C#の勉強を始めて、オブジェクト指向に関して何となく分かったけどプログラムに落とし込むまでは理解出来ていません
手を動かさなきゃ身につかないと思うのですが練習になる例題などあったら教えて頂きたいです
手を動かさなきゃ身につかないと思うのですが練習になる例題などあったら教えて頂きたいです
938デフォルトの名無しさん (ワッチョイ f1ac-LiHY)
2021/03/17(水) 22:43:21.99ID:EwAVXU9r0 作りたいものがないのにプログラミング言語の学習を始めるってつらくない?
あと大きく分けてコンソールアプリ、Windowsとかのアプリ、Webアプリ(サイト)とかあるけど、
(多分コンソールが一番勉強するには素直に始められそうだけど)
どれがやりたいとかないの?
VS使えるならそれぞれプロジェクト作れば大体helloworldくらいまでは勝手に作ってくれるよ
あと大きく分けてコンソールアプリ、Windowsとかのアプリ、Webアプリ(サイト)とかあるけど、
(多分コンソールが一番勉強するには素直に始められそうだけど)
どれがやりたいとかないの?
VS使えるならそれぞれプロジェクト作れば大体helloworldくらいまでは勝手に作ってくれるよ
939デフォルトの名無しさん (ワッチョイ 4d33-Wsu4)
2021/03/17(水) 23:04:26.73ID:5t1i5SYf0 >>937
Unityとかだとオブジェクト指向を楽しく学べそう。
Unityとかだとオブジェクト指向を楽しく学べそう。
940デフォルトの名無しさん (ワッチョイ 2eda-8efn)
2021/03/17(水) 23:44:31.78ID:U0+PPwHU0941デフォルトの名無しさん (アウアウウー Sac5-YyH6)
2021/03/18(木) 02:59:56.18ID:/DoLsZj+a >>937
ライブラリのクラスで比較的単純そうなのを
あえて車輪の再発明してみるとか。
例えばList<T>の簡易版を自分で作ってみる。
ただ、オブジェクト指向を習得したいという目標設定自体が
本当に意味があるかどうかは疑った方がいいかもしれないね。
以下個人の見解ですだけど、オブジェクト指向なんて別に
そんな難しい話じゃない。
机上で本読んでる時にはもやもやしてても
コード書いてる間に自然に府に落ちてくる類のものかもしれないよ。
少なくとも俺はそうだった。
ライブラリのクラスで比較的単純そうなのを
あえて車輪の再発明してみるとか。
例えばList<T>の簡易版を自分で作ってみる。
ただ、オブジェクト指向を習得したいという目標設定自体が
本当に意味があるかどうかは疑った方がいいかもしれないね。
以下個人の見解ですだけど、オブジェクト指向なんて別に
そんな難しい話じゃない。
机上で本読んでる時にはもやもやしてても
コード書いてる間に自然に府に落ちてくる類のものかもしれないよ。
少なくとも俺はそうだった。
942デフォルトの名無しさん (ワッチョイ 6124-BeTG)
2021/03/18(木) 15:19:17.41ID:9YUM+NUH0 ソースファイル数十くらいの規模からじゃないとオブジェクト指向は必要にならないから
初心者は暫くstaticマンとして修業するしかない
初心者は暫くstaticマンとして修業するしかない
943デフォルトの名無しさん (アウアウエー Sa8a-+gzz)
2021/03/18(木) 15:24:02.53ID:8benOtEXa えっ
メインだけならいらんけど
そうじゃないならオブジェクト指向したほうがいい
メインだけならいらんけど
そうじゃないならオブジェクト指向したほうがいい
944デフォルトの名無しさん (ワッチョイ ed42-IMun)
2021/03/18(木) 16:44:12.97ID:U1xZnkhE0 オブジェクト指向もカプセル化の恩恵は結構簡単に実感できるが
多態性のほうは有効な場面が可也少ない
多態性のほうは有効な場面が可也少ない
945デフォルトの名無しさん (ワッチョイ a973-mhyL)
2021/03/18(木) 21:08:28.76ID:e7yzUD160 オブジェクト指向の恩恵のほとんどはinterfaceだからなぁ。
自分で作ったのを他の人が使うようになって始めて、迂闊にクラスを参照させてはならない、
カプセル化していたとしても実装変えにくくなって詰みやすいと気づくわけで。
自分で作って自分だけで使ってる分には気づきにくい。
自分で作ったのを他の人が使うようになって始めて、迂闊にクラスを参照させてはならない、
カプセル化していたとしても実装変えにくくなって詰みやすいと気づくわけで。
自分で作って自分だけで使ってる分には気づきにくい。
946デフォルトの名無しさん (アウアウウー Sac5-YyH6)
2021/03/18(木) 22:34:39.09ID:6dHUIFjDa 何がオブジェクト指向の本質かについてはいろんな人がいろんなこと言ってる
(要するに定説がない)けど、個人的には多態はあくまで付随的な物であって本質じゃないと思う。
オブジェクト指向というかOOPの本質は文字通りオブジェクトという仮想機械をクラスという形で
ストレートにコードに表現できることだと思う。
それが正しいかどうかはともかく、初心者が最初に理解すべき考え方はこれ、
つまりクラスとは仮想機械を記述するものだということだと思う。
(要するに定説がない)けど、個人的には多態はあくまで付随的な物であって本質じゃないと思う。
オブジェクト指向というかOOPの本質は文字通りオブジェクトという仮想機械をクラスという形で
ストレートにコードに表現できることだと思う。
それが正しいかどうかはともかく、初心者が最初に理解すべき考え方はこれ、
つまりクラスとは仮想機械を記述するものだということだと思う。
947デフォルトの名無しさん (ワントンキン MMd3-EoOz)
2021/03/19(金) 00:55:17.23ID:ZleoXut0M 本来そんな小難しい話じゃなくて、プログラムを人間のメンタルモデルに合わせようというのがオブジェクト指向だよ
人間の感覚に合った設計は破綻しにくいという経験則というか仮説に基づいている
人間の感覚に合った設計は破綻しにくいという経験則というか仮説に基づいている
948デフォルトの名無しさん (ワッチョイ 5924-FrbH)
2021/03/19(金) 09:24:53.90ID:VtGgyeTV0 人間のメンタルモデルってか進化論モデルだよ
経験則どころか30億年以上の運用実績があるから信頼性が高い
経験則どころか30億年以上の運用実績があるから信頼性が高い
949デフォルトの名無しさん (ワッチョイ fbda-1L9j)
2021/03/19(金) 10:10:47.26ID:kWUqr5xc0 進化の過程においてミッシングリンクというものが存在しててな。
30億年かどうかは怪しい
30億年かどうかは怪しい
950デフォルトの名無しさん (ラクッペペ MMeb-UnMa)
2021/03/19(金) 10:20:02.87ID:fdf62zP+M 進化の法則が乱れる!
951デフォルトの名無しさん (ブーイモ MMcb-92UB)
2021/03/19(金) 10:30:15.00ID:B4QNkIexM オブジェクト指向とか正直よくわからんが
クラスは、ラムダの変数キャプチャを冗長化、明示化、理解容易化したもの、として考えるようになってから、すべてがうまく噛み合うようになった
クラスは、ラムダの変数キャプチャを冗長化、明示化、理解容易化したもの、として考えるようになってから、すべてがうまく噛み合うようになった
952デフォルトの名無しさん (アウアウウー Sa5d-Xoi0)
2021/03/19(金) 13:07:40.64ID:HbCpBKgza メンタルモデル(笑)とか進化論モデル(笑)とか言い出すと
昔のJava界隈みたいな胡散臭さが出てくるなw
昔のJava界隈みたいな胡散臭さが出てくるなw
953デフォルトの名無しさん (アウアウウー Sa5d-Xoi0)
2021/03/19(金) 13:18:48.59ID:HbCpBKgza まあ特定の機能を担う仮想的な装置(オブジェクト)に分割統治するのは
人間の脳というか認知能力の都合だというのはその通りだけどね。
繰り返しになるけど、重要なのはその「特定の機能を担う仮想的な装置」を
クラスで表現できることになったことなんだよね。
アルゴルズムの教科書に出てくるようなデータ構造はオブジェクト指向が提唱される前からあった。
画期的だったのは、それらをQueueとかDictionaryとか言ったまんまの名前を付けたクラスで書けるようになったこと。
人間の脳というか認知能力の都合だというのはその通りだけどね。
繰り返しになるけど、重要なのはその「特定の機能を担う仮想的な装置」を
クラスで表現できることになったことなんだよね。
アルゴルズムの教科書に出てくるようなデータ構造はオブジェクト指向が提唱される前からあった。
画期的だったのは、それらをQueueとかDictionaryとか言ったまんまの名前を付けたクラスで書けるようになったこと。
954デフォルトの名無しさん (ブーイモ MM4d-Rp6h)
2021/03/19(金) 13:31:05.56ID:Jtw21w2UM 昔あったJavaの月刊誌はやたら哲学用語を多用する記事とかあったな
955デフォルトの名無しさん (ワッチョイ 8b63-rG+B)
2021/03/19(金) 13:40:56.61ID:Oem/eeea0 ニューロマンサーっぽく解説して
956デフォルトの名無しさん (ワッチョイ 1142-4Ddi)
2021/03/19(金) 14:04:48.51ID:Qsi2J9ai0 世の中では「部品化」と言う、もう少し判りやすい言い方を使っているんじゃないかな
957デフォルトの名無しさん (テテンテンテン MMeb-V411)
2021/03/19(金) 14:05:45.45ID:pO9QgyHvM double[] real; double[] imag;でもってる値をComplex[] compへの変換を1行できれいに書けないでしょうか?
comp[0] = new Complex(real[0], imag[0])を配列に対して操作できればかけそうな気がするのですが、LINQとかで表現できますか?
comp[0] = new Complex(real[0], imag[0])を配列に対して操作できればかけそうな気がするのですが、LINQとかで表現できますか?
958デフォルトの名無しさん (ワッチョイ 992d-D9EE)
2021/03/19(金) 14:20:19.54ID:gG/OqDxy0 >>957
var comp = real.Zip( imag, ( r, i ) => new Complex( r, i ) ).ToArray();
var comp = real.Zip( imag, ( r, i ) => new Complex( r, i ) ).ToArray();
959デフォルトの名無しさん (ワッチョイ 9301-lXNI)
2021/03/19(金) 14:25:33.56ID:ysVgQ22g0 >>956
部品が関数でもいいよね?
部品が関数でもいいよね?
960957 (テテンテンテン MMeb-V411)
2021/03/19(金) 14:28:10.86ID:pO9QgyHvM961デフォルトの名無しさん (テテンテンテン MMeb-NT4g)
2021/03/19(金) 21:21:23.14ID:vK2IShGtM ひょっとしなくても>>933のも
var hoge = array_A.Zip(array_B, (a, b) => new float[]{ a, b }).ToList()
でいけたのか
でもこれだったらちょっと冗長でも
var hoge = Enumerable.Zip(array_A, array_B, (a, b) => new float[]{ a, b }).ToList()
って書きたいなあ
var hoge = array_A.Zip(array_B, (a, b) => new float[]{ a, b }).ToList()
でいけたのか
でもこれだったらちょっと冗長でも
var hoge = Enumerable.Zip(array_A, array_B, (a, b) => new float[]{ a, b }).ToList()
って書きたいなあ
962デフォルトの名無しさん (テテンテンテン MMeb-NT4g)
2021/03/19(金) 21:30:14.38ID:vK2IShGtM あ間違えた
var hoge = Enumerable.Zip(array_A, array_B, (a, b) => (a + b) / 2).ToList()
か
var hoge = Enumerable.Zip(array_A, array_B, (a, b) => (a + b) / 2).ToList()
か
963デフォルトの名無しさん (ワッチョイ d133-3UcT)
2021/03/19(金) 22:55:51.95ID:dz1o2wrK0 まだ間違ってる
964デフォルトの名無しさん (ワッチョイ 9389-jgaO)
2021/03/21(日) 08:33:37.34ID:O9O05/ov0 class OrderにはItemCodeとQuantityがあり、
List<Order> order1とorder2をまとめたいです
具体的にはItemCodeが同じならばQuantityを合計し、なければ新たに追加する、といった具合です
foreachを使えばできますが、Linqを使用して簡潔に書ける方法があれば教えてください
List<Order> order1とorder2をまとめたいです
具体的にはItemCodeが同じならばQuantityを合計し、なければ新たに追加する、といった具合です
foreachを使えばできますが、Linqを使用して簡潔に書ける方法があれば教えてください
965デフォルトの名無しさん (ブーイモ MMcb-vxZl)
2021/03/21(日) 09:25:40.37ID:ai+yXZclM ConcatしてitemCodeでGroupByしてSum
966デフォルトの名無しさん (アウアウクー MM05-jgaO)
2021/03/21(日) 12:14:40.89ID:hh+THzL2M967デフォルトの名無しさん (ワッチョイ 9389-4Ddi)
2021/03/21(日) 18:29:47.64ID:O9O05/ov0 >>965
order1.Concat(order2).GroupBy(o => o.ItemCode).Select(x => new Order() {ItemCode = x.Key, Quantity = x.Sum(y => y.Quantity) });
こんな感じですか?
order1.Concat(order2).GroupBy(o => o.ItemCode).Select(x => new Order() {ItemCode = x.Key, Quantity = x.Sum(y => y.Quantity) });
こんな感じですか?
968デフォルトの名無しさん (ワッチョイ 4901-3UcT)
2021/03/21(日) 21:15:46.56ID:B8RMscJD0969デフォルトの名無しさん (ワッチョイ 8b63-rG+B)
2021/03/21(日) 21:28:25.98ID:rOmbGrT+0 え、簡潔と完結を書き間違えたんでしょ?
違うのかな…
違うのかな…
970デフォルトの名無しさん (ワッチョイ 51a7-FMtt)
2021/03/21(日) 21:56:25.09ID:S+S4XTWp0 >>967
こんなの書いてはいけませんっていういい見本
こんなの書いてはいけませんっていういい見本
971デフォルトの名無しさん (ワッチョイ 4901-3UcT)
2021/03/21(日) 22:19:00.23ID:B8RMscJD0 >>969
誤字ですね。簡潔です。
誤字ですね。簡潔です。
972デフォルトの名無しさん (ワッチョイ 51a7-FMtt)
2021/03/21(日) 22:31:46.08ID:S+S4XTWp0 >>967
こんなの現場で書くとどう扱われるか教えてやろうか?
○○さんの書くプログラムはわかりやすいけど
君のはわかりにくいね
読みにくいっていうか
これはどういう処理をしてるの?
仕様を書いてほしいんだけど
文章で書けなかったら
普通の.net2.0ぐらいの機能で書いてくれないかな?
それと○○さんと比べて進捗も遅いよね?
こんな書き方してるからじゃない?
あと処理経過がわかるログも出してほしいんだけど
この書き方のままじゃ出せないでしょ?
とかね
目立つことしないほうがいいよ
こんなの現場で書くとどう扱われるか教えてやろうか?
○○さんの書くプログラムはわかりやすいけど
君のはわかりにくいね
読みにくいっていうか
これはどういう処理をしてるの?
仕様を書いてほしいんだけど
文章で書けなかったら
普通の.net2.0ぐらいの機能で書いてくれないかな?
それと○○さんと比べて進捗も遅いよね?
こんな書き方してるからじゃない?
あと処理経過がわかるログも出してほしいんだけど
この書き方のままじゃ出せないでしょ?
とかね
目立つことしないほうがいいよ
973デフォルトの名無しさん (アウアウエー Sae3-92UB)
2021/03/21(日) 22:43:13.77ID:ejnWrGNOa 長いメソッドの途中でいきなりこれが出てきたら気持ち悪いけど
OrganizeOrdersとか名前つけてメソッドに切り出すなら許せるかな
正しいメソッド名は英語ネイティブに聞いて
OrganizeOrdersとか名前つけてメソッドに切り出すなら許せるかな
正しいメソッド名は英語ネイティブに聞いて
974デフォルトの名無しさん (ワッチョイ 3178-4Ddi)
2021/03/21(日) 22:47:23.75ID:4uqTNWnz0 >あと処理経過がわかるログも出してほしいんだけど
これは流石に設計書いた奴が無能すぎるわ
これは流石に設計書いた奴が無能すぎるわ
975デフォルトの名無しさん (アウアウエー Sae3-92UB)
2021/03/21(日) 22:48:14.21ID:ejnWrGNOa >>972
それほぼ全部カウンター食らうから気をつけたほうがいい
わかりにくい→感覚でしゃべるな、コードメトリクス測定したらLinqのほうが成績良い
どういう処理をしてるの→見たまんまorder1とorder2を繋いでItemCodeでグループ化してQuantityの合計を計算しtwる
使用を書いてほしい→↑が仕様
普通の.net2.0で書く→古い言語仕様に合わせる理由がない
進捗→状況次第
それほぼ全部カウンター食らうから気をつけたほうがいい
わかりにくい→感覚でしゃべるな、コードメトリクス測定したらLinqのほうが成績良い
どういう処理をしてるの→見たまんまorder1とorder2を繋いでItemCodeでグループ化してQuantityの合計を計算しtwる
使用を書いてほしい→↑が仕様
普通の.net2.0で書く→古い言語仕様に合わせる理由がない
進捗→状況次第
976デフォルトの名無しさん (アウアウエー Sae3-92UB)
2021/03/21(日) 22:49:08.96ID:ejnWrGNOa ログ出して→この程度の処理でいちいちログ出したらログが汚れるしパフォーマンスも悪化する
977デフォルトの名無しさん (ワッチョイ b102-+i0H)
2021/03/21(日) 22:54:55.17ID:gB+oqGaT0 >>967
これってそんなに読みにくい?
自分も他の人もこのくらいなら普通に書くけど。
どうしてもなら、各メソッドの間に改行入れて各行ごとに処理内容のコメントを書いてもいいし。
こう言うのでログを出して欲しいって要望を受けたことはないけど自分でそれ用の拡張メソッドを書けば出せないこともないし。とか言ってみる。
これってそんなに読みにくい?
自分も他の人もこのくらいなら普通に書くけど。
どうしてもなら、各メソッドの間に改行入れて各行ごとに処理内容のコメントを書いてもいいし。
こう言うのでログを出して欲しいって要望を受けたことはないけど自分でそれ用の拡張メソッドを書けば出せないこともないし。とか言ってみる。
978デフォルトの名無しさん (ワッチョイ 51a7-FMtt)
2021/03/21(日) 22:58:09.33ID:S+S4XTWp0979デフォルトの名無しさん (ワッチョイ 9389-4Ddi)
2021/03/21(日) 23:16:39.83ID:O9O05/ov0 >>967です
たくさんのレスがついていてビックリしています
書いていて思ったのは>>977さんがいうように各メソッドの間に改行を入れればまだ読みやすいと思ったのと、
Orderのプロパティが多いようだとどんどん読みづらくなっていくな、と思いました
foreachで書いたのはこんな感じですが、よりいい方法があれば知りたいです
var allItem = new List<Order>(order1);
foreach (var o in order2)
{
var duplicate = allItem.FirstOrDefault(x => x.ItemCode == o.ItemCode);
if (duplicate is null)
allItem.Add(o);
else
duplicate.Quantity += o.Quantity;
}
たくさんのレスがついていてビックリしています
書いていて思ったのは>>977さんがいうように各メソッドの間に改行を入れればまだ読みやすいと思ったのと、
Orderのプロパティが多いようだとどんどん読みづらくなっていくな、と思いました
foreachで書いたのはこんな感じですが、よりいい方法があれば知りたいです
var allItem = new List<Order>(order1);
foreach (var o in order2)
{
var duplicate = allItem.FirstOrDefault(x => x.ItemCode == o.ItemCode);
if (duplicate is null)
allItem.Add(o);
else
duplicate.Quantity += o.Quantity;
}
980デフォルトの名無しさん (ワッチョイ 9389-4Ddi)
2021/03/21(日) 23:21:28.52ID:O9O05/ov0 >>979
最初にvar allItem = new List<Order>(order1);をしていますが、
duplicate.Quantity += o.Quantity;をするとorder1の内容も更新されてしまいますね
DeepCopyなどで複製するべきでした
最初にvar allItem = new List<Order>(order1);をしていますが、
duplicate.Quantity += o.Quantity;をするとorder1の内容も更新されてしまいますね
DeepCopyなどで複製するべきでした
981デフォルトの名無しさん (ワッチョイ 8b63-rG+B)
2021/03/22(月) 00:13:51.82ID:dAcW2Slk0 >>971
質問者も簡潔と完結を間違えてるんじゃね?ってダブルの冗談さ
質問者も簡潔と完結を間違えてるんじゃね?ってダブルの冗談さ
982デフォルトの名無しさん (ワッチョイ 538b-4Ddi)
2021/03/22(月) 00:23:14.95ID:0zPdt/v20 C# Seleniumでブラウザを閉じるときに
Quit();
Close();
の動作が最近のChromeのアップデートでかなり遅くなっています。
私だけでしょうか?
Quit();
Close();
の動作が最近のChromeのアップデートでかなり遅くなっています。
私だけでしょうか?
983デフォルトの名無しさん (ワッチョイ 8bbb-Q5Cn)
2021/03/22(月) 01:09:40.25ID:RQGm3cmd0 >>967のコードは、ドットで改行したらいいぐらいでなんも悪くないだろう
984デフォルトの名無しさん (ブーイモ MM4d-vxZl)
2021/03/22(月) 02:12:24.15ID:GLNo6tkcM ちゃんとしたテストコード書いてあるなら967のでかまわん
985デフォルトの名無しさん (ワッチョイ 51a7-FMtt)
2021/03/22(月) 02:17:21.58ID:1s/2BcbO0 ログもちゃんと出力してね
指摘する人間に粒度が依存するけど
少なくとも俺はこんな一括でやられたらどこがバグってるのかわからない
指摘する人間に粒度が依存するけど
少なくとも俺はこんな一括でやられたらどこがバグってるのかわからない
986デフォルトの名無しさん (ワッチョイ 51a7-FMtt)
2021/03/22(月) 02:21:02.72ID:1s/2BcbO0 まあ、もっとも指摘する人間の粒度に依存する部分に対応できない処理を書いちゃうあたり優秀とは程遠いというのが俺の感想だがね
987デフォルトの名無しさん (ワッチョイ 992d-D9EE)
2021/03/22(月) 03:06:05.30ID:ElndWJoU0 この程度のコードが理解出来ないで文句垂れてるとか恥ずかしくないのかな
足を引っ張りあって低い方に合わせて仲良くってのが日本のITで
生産性の低さに表れてるのだろうな
足を引っ張りあって低い方に合わせて仲良くってのが日本のITで
生産性の低さに表れてるのだろうな
988デフォルトの名無しさん (アウアウクー MM05-Q8H3)
2021/03/22(月) 07:03:59.88ID:IJYAylQJM これが読みにくかったら、簡単なSQL文すら書けない&読めない現場
20年前の現場ではSQLでとってきたレコードをループしながら集計しているコードがゴロゴロあった
20年前の現場ではSQLでとってきたレコードをループしながら集計しているコードがゴロゴロあった
989デフォルトの名無しさん (テテンテンテン MMeb-NT4g)
2021/03/22(月) 07:27:03.21ID:68S3N7MUM990デフォルトの名無しさん (アウアウクー MM05-Q8H3)
2021/03/22(月) 08:20:54.66ID:IJYAylQJM うちにもLINQ読めないからやめろ!って言うおっさんがいたな
最初年長者の言うことだからと素直に聞いていたけど
だんだん腹立ってきてボロカスに言ったら何も言わなくなった
最初年長者の言うことだからと素直に聞いていたけど
だんだん腹立ってきてボロカスに言ったら何も言わなくなった
991デフォルトの名無しさん (ワッチョイ 51a7-FMtt)
2021/03/22(月) 09:33:10.92ID:1s/2BcbO0992デフォルトの名無しさん (ワッチョイ 51a7-FMtt)
2021/03/22(月) 09:36:15.54ID:1s/2BcbO0 君のプログラムは
たったこれだけ、
ホントこれっぽちの、
普通のプログラマなら本当に誰でも可能な、
ことすらできないゴミカスなので
対応できませーん!(笑)(´∀`*)ウフフ
たったこれだけ、
ホントこれっぽちの、
普通のプログラマなら本当に誰でも可能な、
ことすらできないゴミカスなので
対応できませーん!(笑)(´∀`*)ウフフ
993デフォルトの名無しさん (ワッチョイ 59ad-XoZt)
2021/03/22(月) 09:44:59.10ID:1pgrqUSA0 >>989
>>972の指摘は技術的な無知から真顔でやってるんじゃないよ。
和を乱すなら撤退しろ、ってメッセージなんだから、技術論で正しいって言っても無駄なんよ。
これが正しいってコンセンサスを先に取れば誰も何も言わない。
実際に工数が下がることを証明して、パフォーマンスが落ちていないことを証明して、コーディングルールにLinqの使い方を明示して、やってはいけない使い方なんかも書いて、それで通すもの。
俺は使いたかったからそうして通したから間違いない。
引っ張り合いではなくて、皆のレベルを上げる必要があるの。
一人が踊り狂っても、そいつが辞めたときに誰も面倒が見れない物が残るだけ。
おっさんになってからつくづく思うけど、お前らほんと自己中だな。
>>972の指摘は技術的な無知から真顔でやってるんじゃないよ。
和を乱すなら撤退しろ、ってメッセージなんだから、技術論で正しいって言っても無駄なんよ。
これが正しいってコンセンサスを先に取れば誰も何も言わない。
実際に工数が下がることを証明して、パフォーマンスが落ちていないことを証明して、コーディングルールにLinqの使い方を明示して、やってはいけない使い方なんかも書いて、それで通すもの。
俺は使いたかったからそうして通したから間違いない。
引っ張り合いではなくて、皆のレベルを上げる必要があるの。
一人が踊り狂っても、そいつが辞めたときに誰も面倒が見れない物が残るだけ。
おっさんになってからつくづく思うけど、お前らほんと自己中だな。
994デフォルトの名無しさん (ワッチョイ 51a7-FMtt)
2021/03/22(月) 10:00:26.34ID:1s/2BcbO0995デフォルトの名無しさん (ワッチョイ 51a7-FMtt)
2021/03/22(月) 10:02:49.77ID:1s/2BcbO0 と思ったら内容違うじゃん
はじめの一文で立場を明確にしろよ
はじめの一文で立場を明確にしろよ
996デフォルトの名無しさん (ワッチョイ 9301-lXNI)
2021/03/22(月) 10:18:56.38ID:e3BAbY2z0 >>991
途中経過をログ出力したければ普通にできるけど・・・
途中経過をログ出力したければ普通にできるけど・・・
997デフォルトの名無しさん (ワッチョイ 4901-R0OD)
2021/03/22(月) 10:37:03.10ID:qAoMyjOy0 >>995
クソダッセw
クソダッセw
998デフォルトの名無しさん (ワッチョイ 51a7-FMtt)
2021/03/22(月) 10:39:26.64ID:1s/2BcbO0 >>996
ほう、やってみろ
ほう、やってみろ
999デフォルトの名無しさん (ワッチョイ 59ad-XoZt)
2021/03/22(月) 10:41:32.69ID:1pgrqUSA0 >>994
ちゃんと読まないとかそういうところもだぞ。
ちゃんと読まないとかそういうところもだぞ。
1000デフォルトの名無しさん (ワッチョイ 29b5-7GuP)
2021/03/22(月) 10:54:40.38ID:NnPBdii70 >>1000なら俺は今年株で大儲けする
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 95日 23時間 25分 5秒
新しいスレッドを立ててください。
life time: 95日 23時間 25分 5秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 米大統領報道官「日本と強固な同盟維持、中国とも協力」 [少考さん★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★2 [蚤の市★]
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ [冬月記者★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- ゆたぼん 二重手術を報告「めちゃくちゃ気に入っています」 [muffin★]
- 【悲報】維新の政治資金でガールズバー、高市首相「良いか悪いかは国民の皆さまが判断されること」 [115996789]
- 【マギレコ】VIPでマギアレコード&マギアエクセドラ【まどドラ】
- 中国人、ガチ超正論。「日本人がアイヌに対してやったことを『問題ない』とするなら、中国が日本人に同じことをしても文句ないだろう?」 [314039747]
- 【悲報】新米、全く売れなくて倉庫が満杯になってしまうwwwwwwwwwwwwwwwwwwww [802034645]
- 【悲報】柳原司奈子さん救急搬送
- いじめられてる男子中学生だけど質問ある?
