「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part132
http://mevius.5ch.net/test/read.cgi/tech/1507543256/
■関連スレ
C#, C♯, C#相談室 Part95
http://mevius.5ch.net/test/read.cgi/tech/1508180530/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/
■情報源https://msdn.microsoft.com/ja-jp/library/gg145045.aspx
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
ふらっと C#,C♯,C#(初心者用) Part133
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 7bde-MYX9)
2017/11/07(火) 21:11:25.20ID:LeQqgpmT0441デフォルトの名無しさん (ワッチョイ ff81-BPYy)
2017/11/15(水) 21:34:15.53ID:O2CkROvj0 ここ数日の有り様は何なんだろう
C#養護学校の卒業式でもあったのかね
C#養護学校の卒業式でもあったのかね
442デフォルトの名無しさん (ワッチョイ dfe3-FK5L)
2017/11/15(水) 21:35:20.82ID:EAeU3mIh0 linq友の会スレ使えよガイジ
443デフォルトの名無しさん (ワッチョイ 5f16-bJtK)
2017/11/15(水) 21:36:55.30ID:4L7ZsFBR0 必要以上にってのが言いたかった。
実用性は別としてリスト操作系関数でスラスラ書ける奴にコンプでもあるのかって思っちゃう
実用性は別としてリスト操作系関数でスラスラ書ける奴にコンプでもあるのかって思っちゃう
444デフォルトの名無しさん (ワッチョイ dfe3-FK5L)
2017/11/15(水) 21:39:23.16ID:EAeU3mIh0445デフォルトの名無しさん (ワッチョイ dfe3-FK5L)
2017/11/15(水) 21:43:12.25ID:EAeU3mIh0 あとは
設計書記述スキルを上げるか
見積り書記述スキルを上げるか
議事録作成スキルを上げるか
した方がナンボか実りがあるよ
設計書記述スキルを上げるか
見積り書記述スキルを上げるか
議事録作成スキルを上げるか
した方がナンボか実りがあるよ
446デフォルトの名無しさん (ワッチョイ 5f16-bJtK)
2017/11/15(水) 21:44:53.19ID:4L7ZsFBR0 しかし自分の苦手な物を使える奴にはコンプを感じる
447デフォルトの名無しさん (ワッチョイ ff9a-TPjW)
2017/11/15(水) 21:46:47.98ID:D6YDuXrJ0 >>440
レスいくつも書き込むくらいならそのコード提示したらいいのに
レスいくつも書き込むくらいならそのコード提示したらいいのに
448デフォルトの名無しさん (ワッチョイ dfe3-FK5L)
2017/11/15(水) 21:48:01.68ID:EAeU3mIh0449デフォルトの名無しさん (ワッチョイ 5f25-bJtK)
2017/11/15(水) 22:15:03.22ID:mH4zmpJW0 興味ねーならゴミだのクソだのほざいてんじゃねーよw
450デフォルトの名無しさん (ワッチョイ dfe3-FK5L)
2017/11/15(水) 22:17:35.92ID:EAeU3mIh0451デフォルトの名無しさん (ワッチョイ dfe3-FK5L)
2017/11/15(水) 22:20:30.39ID:EAeU3mIh0 どれだけ偉そうな主張があるのかと思えば
貼ってあるのはクソコードばかり
linq貼ってるやつ目障りだから死ねよ
普通に組んだ方が綺麗なコードなら持ってくんなよ
だっせ
貼ってあるのはクソコードばかり
linq貼ってるやつ目障りだから死ねよ
普通に組んだ方が綺麗なコードなら持ってくんなよ
だっせ
452デフォルトの名無しさん (ワッチョイ 5ffa-bJtK)
2017/11/15(水) 22:21:20.95ID:txwTk3zR0 おまえの価値基準で判断すんなw
コンプ感じてるだけw
コンプ感じてるだけw
453デフォルトの名無しさん (ワッチョイ 5fc9-Ud84)
2017/11/15(水) 22:24:54.13ID:qS39jpKw0 これ以上はLINQスレでやれと言おうとしたらもう落ちているのね
454デフォルトの名無しさん (ワッチョイ dfe3-FK5L)
2017/11/15(水) 22:25:31.88ID:EAeU3mIh0455デフォルトの名無しさん (ワッチョイ dfe3-FK5L)
2017/11/15(水) 22:26:54.12ID:EAeU3mIh0 >>453
linq誰も使ってないからな
linq誰も使ってないからな
456デフォルトの名無しさん (ワッチョイ ff9a-TPjW)
2017/11/15(水) 22:28:44.48ID:D6YDuXrJ0 まあコード書けないアホは相手にしなくていいよ
457デフォルトの名無しさん (ワッチョイ dfe3-FK5L)
2017/11/15(水) 22:35:29.64ID:EAeU3mIh0 どっちかっていうとアプリを作れないアホだな
まあ、コードで何か主張したいならGitHubでもやればいいのに
こんな便所でしか主張できないなら
クズどものlinqライフもここでしめーだろ
まあ、コードで何か主張したいならGitHubでもやればいいのに
こんな便所でしか主張できないなら
クズどものlinqライフもここでしめーだろ
458デフォルトの名無しさん (ワッチョイ 5fe5-7wKg)
2017/11/15(水) 22:39:12.32ID:E1HTns1P0 ウハwwwwww
書けない奴が批判の図wwww
権利すらなしwwwwwww
書けない奴が批判の図wwww
権利すらなしwwwwwww
459デフォルトの名無しさん (ワッチョイ dfe3-FK5L)
2017/11/15(水) 22:44:23.78ID:EAeU3mIh0460デフォルトの名無しさん (ワッチョイ 5f4b-bJtK)
2017/11/15(水) 23:03:01.93ID:vH3D/QHI0 キミ流のコードおなシャス!
461デフォルトの名無しさん (ワッチョイ df81-nR9L)
2017/11/15(水) 23:19:43.56ID:rNYxO5wL0 >>436
ここは初心者スレじゃないのかw
ここは初心者スレじゃないのかw
462デフォルトの名無しさん (ササクッテロ Sp33-nSoy)
2017/11/15(水) 23:22:37.65ID:vwyVPxZJp 人間初心者のスレですよ、たぶん
463デフォルトの名無しさん (ササクッテロ Sp33-nSoy)
2017/11/15(水) 23:25:46.54ID:vwyVPxZJp 正確にはC#で記述された人工知能なんですけどね
464デフォルトの名無しさん (ワッチョイ 5f75-7wKg)
2017/11/15(水) 23:26:21.77ID:H4muME/S0 >>428
どこ情報?
どこ情報?
465デフォルトの名無しさん (ワッチョイ dfe3-FK5L)
2017/11/15(水) 23:47:19.33ID:EAeU3mIh0 >>464
amazonで予約中になってる
amazonで予約中になってる
466デフォルトの名無しさん (ワッチョイ 5e9c-TFbh)
2017/11/16(木) 12:14:27.14ID:x/aWQ3sN0 stringは参照型だから既定値はnullということで合ってるよね?
467デフォルトの名無しさん (ブーイモ MMcd-rQ5a)
2017/11/16(木) 12:22:49.67ID:/4eW5bh4M >>466
既定値はnullだけどstringはイミュータブル型
既定値はnullだけどstringはイミュータブル型
468デフォルトの名無しさん (アウアウイー Sa91-8CrJ)
2017/11/16(木) 13:24:58.55ID:lGT15xaEa >>466
stringは参照型で規定値はnull
stringは参照型で規定値はnull
469デフォルトの名無しさん (ワッチョイ 92eb-RjUU)
2017/11/16(木) 18:15:43.67ID:7VJMckpW0 WPFじゃなくてWindowsForms内で簡単な3D描画したいんですが
どういう風がいいでしょうか。
とりあえず箱を線で描くだけなんですが。
・DrawLineみたいなので始点終点を3次元(X,Y,Z)で指定し描画
・視点の位置(X,Y,Z)と向きを指定して表示
って風な感じが希望なんですが・・・・
どういう風がいいでしょうか。
とりあえず箱を線で描くだけなんですが。
・DrawLineみたいなので始点終点を3次元(X,Y,Z)で指定し描画
・視点の位置(X,Y,Z)と向きを指定して表示
って風な感じが希望なんですが・・・・
470デフォルトの名無しさん (ワッチョイ 2de3-vU7N)
2017/11/16(木) 18:25:02.34ID:K+YFepCs0 それでいいじゃん
471デフォルトの名無しさん (ワッチョイ 92eb-RjUU)
2017/11/16(木) 18:27:37.39ID:7VJMckpW0 DrawLine の Point型 って X,Y しかないじゃないですか。
X,Y,Z で指定できる DrawLine がないのかと
X,Y,Z で指定できる DrawLine がないのかと
472デフォルトの名無しさん (ワッチョイ 82d2-GPeT)
2017/11/16(木) 18:32:16.65ID:F5ZZYHwp0 気合で座標計算
473デフォルトの名無しさん (ワッチョイ 2de3-vU7N)
2017/11/16(木) 18:39:59.53ID:K+YFepCs0 カメラ固定でいいんだろ?
ZがXYのどこになるかは簡単な計算で出せる
紙に気に入った角度の3軸を書いて見ればいい
ZがXYのどこになるかは簡単な計算で出せる
紙に気に入った角度の3軸を書いて見ればいい
474デフォルトの名無しさん (ワッチョイ 7d17-RjUU)
2017/11/16(木) 18:49:26.46ID:rygh13wZ0 OpenTKでも使えば?
475デフォルトの名無しさん (アウアウエー Sa0a-5Bo2)
2017/11/16(木) 19:04:34.95ID:JEjgvNkla >>471
カメラの視線方向をZ軸、カメラから1000mm先のカメラの視線に垂直な平面上の1000mmの
線分がモニター上に1000mmで表示されるモデルを採用、3D、2Dともに同じ単位系(例えばmm)
を使用する条件なら、3D空間上の点(X, Y, Z)を2D上の点(x, y)に写像するには、
(x, y) = (X/Z, Y/Z)
でいいと思う。知らんけど
2DグラフィックのY軸が下向きなのを考慮するならyはもちろん-1倍する
カメラの視線方向をZ軸、カメラから1000mm先のカメラの視線に垂直な平面上の1000mmの
線分がモニター上に1000mmで表示されるモデルを採用、3D、2Dともに同じ単位系(例えばmm)
を使用する条件なら、3D空間上の点(X, Y, Z)を2D上の点(x, y)に写像するには、
(x, y) = (X/Z, Y/Z)
でいいと思う。知らんけど
2DグラフィックのY軸が下向きなのを考慮するならyはもちろん-1倍する
476デフォルトの名無しさん (アウアウエー Sa0a-5Bo2)
2017/11/16(木) 19:32:37.14ID:JEjgvNkla 描画面の中心を原点にする変換も必要かw
こっちはGraphicsの組み込みの機能でできるけど
こっちはGraphicsの組み込みの機能でできるけど
477デフォルトの名無しさん (ワッチョイ 4175-jqfw)
2017/11/16(木) 19:52:49.24ID:o+kP3k0v0478デフォルトの名無しさん (ワッチョイ 2de3-vU7N)
2017/11/16(木) 19:57:23.76ID:K+YFepCs0 そんな面倒なことしなくても
カメラ固定ならXYに足すだけでいいじゃん
Zが1ならXYに0.5ずつ足すみたいのでいいよ
Zが2ならXYに1ずつ足す
Zが3ならXYに1.5ずつ足す
みたいな
カメラ固定ならXYに足すだけでいいじゃん
Zが1ならXYに0.5ずつ足すみたいのでいいよ
Zが2ならXYに1ずつ足す
Zが3ならXYに1.5ずつ足す
みたいな
479デフォルトの名無しさん (ワッチョイ 6e9a-GXP8)
2017/11/16(木) 21:38:46.30ID:ac8ZDyBE0 >>469
URLが何故か張れないんだが
C#3D立方体ワイヤーフレーム (第1回) for VS2013 Express
でググって見つかるところが参考になる
ライブラリを期待しているのならC++で探すしかないだろうな
DLLになっていればC#からでも使えるから
URLが何故か張れないんだが
C#3D立方体ワイヤーフレーム (第1回) for VS2013 Express
でググって見つかるところが参考になる
ライブラリを期待しているのならC++で探すしかないだろうな
DLLになっていればC#からでも使えるから
480デフォルトの名無しさん (アウアウイー Sa91-dUYE)
2017/11/16(木) 22:56:01.22ID:851mScQ5a いくらなんでもopenGLライブラリはwinforms用ぐらいあると思う
windows forms openglでググれ
windows forms openglでググれ
481デフォルトの名無しさん (ワッチョイ 4175-jqfw)
2017/11/16(木) 23:02:09.93ID:o+kP3k0v0 >>474でもうでてる
482デフォルトの名無しさん (ワッチョイ 8de4-zZYI)
2017/11/16(木) 23:17:24.79ID:Tv1Vr9CT0 時間, 名前, テスト回数
2017/1/1, A氏, 3
2017/1/1, A氏, 4
2017/1/1, B氏, 1
2017/1/1, B氏, 2
2017/2/1, A氏, 1
2017/2/1, A氏, 2
2017/2/1, B氏, 1
2017/2/1, B氏, 2
2017/3/1, A氏, 1
2017/3/1, A氏, 2
2017/3/1, A氏, 3
↑のようなデータがある場合
↓のように名前ごとに最新の時間のデータを取得したい。
2017/3/1, A氏, 1
2017/3/1, A氏, 2
2017/3/1, A氏, 3
2017/2/1, B氏, 1
2017/2/1, B氏, 2
2017/1/1, A氏, 3
2017/1/1, A氏, 4
2017/1/1, B氏, 1
2017/1/1, B氏, 2
2017/2/1, A氏, 1
2017/2/1, A氏, 2
2017/2/1, B氏, 1
2017/2/1, B氏, 2
2017/3/1, A氏, 1
2017/3/1, A氏, 2
2017/3/1, A氏, 3
↑のようなデータがある場合
↓のように名前ごとに最新の時間のデータを取得したい。
2017/3/1, A氏, 1
2017/3/1, A氏, 2
2017/3/1, A氏, 3
2017/2/1, B氏, 1
2017/2/1, B氏, 2
483デフォルトの名無しさん (ワッチョイ 8de4-zZYI)
2017/11/16(木) 23:18:08.01ID:Tv1Vr9CT0 >>482
↓のような感じで取れるとは思いますが
実際のデータでは時間も名前も複数あるのでLINQで一発で取れる書き方はないでしょうか?
public class Test
{
public DateTime 時間 { get; set; }
public string 名前 { get; set; }
public int テスト回数 { get; set; }
}
List<Test> ListTest = new ListTest ();
var List1 = ListTest.Where(x=>x.名前 == "A氏" & x.時間 = 2017/3/1).ToList();
var List2 = ListTest.Where(x=>x.名前 == "B氏" & x.時間 = 2017/2/1).ToList();
List3.add(List1);
List3.add(List2);
↓のような感じで取れるとは思いますが
実際のデータでは時間も名前も複数あるのでLINQで一発で取れる書き方はないでしょうか?
public class Test
{
public DateTime 時間 { get; set; }
public string 名前 { get; set; }
public int テスト回数 { get; set; }
}
List<Test> ListTest = new ListTest ();
var List1 = ListTest.Where(x=>x.名前 == "A氏" & x.時間 = 2017/3/1).ToList();
var List2 = ListTest.Where(x=>x.名前 == "B氏" & x.時間 = 2017/2/1).ToList();
List3.add(List1);
List3.add(List2);
484デフォルトの名無しさん (ワッチョイ 4175-jqfw)
2017/11/16(木) 23:18:26.88ID:o+kP3k0v0 LINQの出番再び
485デフォルトの名無しさん (ワッチョイ 6e81-6i5E)
2017/11/16(木) 23:19:34.43ID:eJZERDUZ0 友の会スレに行け
486デフォルトの名無しさん (ワッチョイ 8de4-zZYI)
2017/11/16(木) 23:28:56.32ID:Tv1Vr9CT0 そんなこといわずに優しいレスくれよ
友の会ってどこなの?
友の会ってどこなの?
487デフォルトの名無しさん (ワッチョイ 4175-jqfw)
2017/11/16(木) 23:37:44.24ID:o+kP3k0v0 list.GroupBy(item=>item.名前).Select(group=>group.Max(item=>item.日時.Ticks)).ToList<Test>()
488デフォルトの名無しさん (ワッチョイ 4175-jqfw)
2017/11/16(木) 23:44:12.00ID:o+kP3k0v0 今試したらエラー吐いたけど参考にしてくれ
489デフォルトの名無しさん (ワッチョイ 8de4-zZYI)
2017/11/16(木) 23:44:38.82ID:Tv1Vr9CT0490デフォルトの名無しさん (ワッチョイ 9102-hYVS)
2017/11/17(金) 00:03:01.06ID:LOAPaCxV0 ListTest.GroupBy(item => item.名前).Select(group => group.Aggregate((max, item) => item.時間 > max.時間 ? item : max)).ToList()
491デフォルトの名無しさん (ワッチョイ 91e5-x/r4)
2017/11/17(金) 00:16:27.21ID:ZIvR54fI0 DateTimeオブジェクトはそれ自体に大小関係演算子使えるしな
492デフォルトの名無しさん (アウアウイー Sa91-dUYE)
2017/11/17(金) 00:34:17.30ID:xoZUoffUa どれも微妙に仕様から外れてるような…
493デフォルトの名無しさん (ワッチョイ 2de3-vU7N)
2017/11/17(金) 00:40:57.63ID:45Grbd2f0 並びの下の方が同じ日付でも最新なの?
まあ、そういうデータよくあるけど
まあ、そういうデータよくあるけど
494デフォルトの名無しさん (ワッチョイ 220c-XFH7)
2017/11/17(金) 00:54:10.94ID:E5GExksf0 SQLだとドヤ顔でExistsしてるブログがたくさん出るやつだな
495デフォルトの名無しさん (ワッチョイ 4175-jqfw)
2017/11/17(金) 00:57:10.96ID:ZBvifIa80 下のやつを最新にしたいなら>=にすればいいのかな
順番通りの保障ないかもしれないけど
順番通りの保障ないかもしれないけど
496デフォルトの名無しさん (ワッチョイ 4175-jqfw)
2017/11/17(金) 01:02:10.05ID:ZBvifIa80 ienumerbleだからだめか
最初の段階でインデックスとペアにするとか
最初の段階でインデックスとペアにするとか
497デフォルトの名無しさん (アウアウイー Sa91-dUYE)
2017/11/17(金) 01:13:33.00ID:xoZUoffUa 多分個人の最終日のすべてデータが欲しいんだよね
498デフォルトの名無しさん (アウアウイー Sa91-dUYE)
2017/11/17(金) 01:21:22.13ID:xoZUoffUa う〜んできたけど汚い
499デフォルトの名無しさん (ワッチョイ 4175-jqfw)
2017/11/17(金) 02:55:06.18ID:ZBvifIa80 これだけで各々の最新のデータが取れるはず。
ListTest.GroupBy(item => item.名前).Select(group => group.OrderBy(item => item.時間).Last()).ToList()
・GroupBy
Elements in a grouping are yielded in the order that the elements that produced them appear in source.
https://msdn.microsoft.com/ja-jp/library/bb534304(v=vs.110).aspx
・OrderBy
キーに従って昇順のシーケンスの要素を並べ替えます。
このメソッドは、安定した並べ替えを実行します。つまり、2 つの要素のキーが等しい場合は、要素の順序が保持されます。
https://msdn.microsoft.com/ja-jp/library/bb534966(v=vs.110).aspx
元データの並び順で下にあるほうのが優先されてるのをはっきりとわかるように書きたかったらかなり長いけどこうかな?w
ListTest.Select((item, index) => { Item = item, Index = index } ).GroupBy(pair => pair.Item.名前).Select(group => group.GroupBy(pair => pair.Item.時間).OrderBy(innerGroup => innerGroup.Key).Last().OrderBy(pair => pair.Index).Last().Item)
ListTest.GroupBy(item => item.名前).Select(group => group.OrderBy(item => item.時間).Last()).ToList()
・GroupBy
Elements in a grouping are yielded in the order that the elements that produced them appear in source.
https://msdn.microsoft.com/ja-jp/library/bb534304(v=vs.110).aspx
・OrderBy
キーに従って昇順のシーケンスの要素を並べ替えます。
このメソッドは、安定した並べ替えを実行します。つまり、2 つの要素のキーが等しい場合は、要素の順序が保持されます。
https://msdn.microsoft.com/ja-jp/library/bb534966(v=vs.110).aspx
元データの並び順で下にあるほうのが優先されてるのをはっきりとわかるように書きたかったらかなり長いけどこうかな?w
ListTest.Select((item, index) => { Item = item, Index = index } ).GroupBy(pair => pair.Item.名前).Select(group => group.GroupBy(pair => pair.Item.時間).OrderBy(innerGroup => innerGroup.Key).Last().OrderBy(pair => pair.Index).Last().Item)
500デフォルトの名無しさん (ワッチョイ 4175-jqfw)
2017/11/17(金) 02:56:22.67ID:ZBvifIa80 .ToList()
w
w
501デフォルトの名無しさん (ワッチョイ 2de3-vU7N)
2017/11/17(金) 09:51:19.99ID:45Grbd2f0 これ、仕事で使われたらキレるな
502デフォルトの名無しさん (ワッチョイ 914b-jqfw)
2017/11/17(金) 10:01:35.59ID:yfGcWiWk0 落ち着けよ、おっさん。
503デフォルトの名無しさん (ガックシ 0666-jqfw)
2017/11/17(金) 11:41:22.51ID:vZ4OY4a56 LINQ使わなかったらこうか?
int indexOfSame名前(Test item, List<Test> list)
{
for(var i=0;list.Count;i++)
if(list[i].名前==item.名前){
foundIndex=i;
return i;
}
}
return -1;
}
List<Test> extractLatestData(List<Test> list)
{
var result=new List<Test>();
foreach(var item in list){
var foundIndex=indexOfSame名前(item, result);
if(foundIndex>=0){
if(item.時間>=result[foundIndex].時間){
result[foundIndex]=item;
}
}else{
result.Add(item);
}
}
return result;
}
var result= extractLatestData(ListTest);
LINQ使えばこう?
var result=ListTest.GroupBy(item => item.名前).Select(group => group.OrderBy(item => item.時間).Last()).ToList();
int indexOfSame名前(Test item, List<Test> list)
{
for(var i=0;list.Count;i++)
if(list[i].名前==item.名前){
foundIndex=i;
return i;
}
}
return -1;
}
List<Test> extractLatestData(List<Test> list)
{
var result=new List<Test>();
foreach(var item in list){
var foundIndex=indexOfSame名前(item, result);
if(foundIndex>=0){
if(item.時間>=result[foundIndex].時間){
result[foundIndex]=item;
}
}else{
result.Add(item);
}
}
return result;
}
var result= extractLatestData(ListTest);
LINQ使えばこう?
var result=ListTest.GroupBy(item => item.名前).Select(group => group.OrderBy(item => item.時間).Last()).ToList();
504デフォルトの名無しさん (ワッチョイ f9b3-nMlI)
2017/11/17(金) 11:58:47.46ID:XIkoXTHK0 横に長くて拒否反応出るのも解らないでは無いんだが
読む時は愚直に左から読んでいくだけだし、PowerShell使ってると日常茶飯事だしな……
読む時は愚直に左から読んでいくだけだし、PowerShell使ってると日常茶飯事だしな……
505デフォルトの名無しさん (ワッチョイ 6e80-IVKU)
2017/11/17(金) 12:03:36.39ID:/4Y2zvAi0 普通は、改行しながら書く
506デフォルトの名無しさん (ドコグロ MMca-vU7N)
2017/11/17(金) 12:08:02.02ID:qxZxmWbCM507デフォルトの名無しさん (ガックシ 0666-jqfw)
2017/11/17(金) 12:11:30.21ID:vZ4OY4a56 foreach~~
result.Add(latestDataOf(リスト, 名前))
とかのほうがいい?
result.Add(latestDataOf(リスト, 名前))
とかのほうがいい?
508デフォルトの名無しさん (ガックシ 0666-jqfw)
2017/11/17(金) 12:14:53.31ID:vZ4OY4a56 これだとおかしいか
foreachであらかじめリストから抽出しておいた名前の種類の一覧とかを与えないとあれか
foreachであらかじめリストから抽出しておいた名前の種類の一覧とかを与えないとあれか
509デフォルトの名無しさん (スプッッ Sd22-XFH7)
2017/11/17(金) 12:23:06.18ID:uCPaYCi4d 最新取る頻度が高いなら最新テーブルと履歴テーブルを分けてほしい
510デフォルトの名無しさん (ワッチョイ f9b3-HNOF)
2017/11/17(金) 13:11:41.07ID:QYCCbo0/0 推敲してから書き込めば一度で済むのに。。。
511デフォルトの名無しさん (ワッチョイ 2de3-vU7N)
2017/11/17(金) 13:38:17.44ID:45Grbd2f0512デフォルトの名無しさん (ガックシ 0666-jqfw)
2017/11/17(金) 14:48:58.50ID:y/lDgZqq6 みんなって推敲してるの?
真面目だな
俺もこれからはそうするかもしれん
真面目だな
俺もこれからはそうするかもしれん
513デフォルトの名無しさん (ワッチョイ 5e9c-TFbh)
2017/11/17(金) 15:16:56.52ID:Km51pzYd0 真面目に考えるとデータベースに更新分Insertしてからあらかじめ作ってあるビューをSelectするだけ
GroupBYや集計はDBでやった方が楽だしこっちでは表示件数や順序くらいしかいじらない
データベースといってもローカル鯖や組み込みもある、適材適所
GroupBYや集計はDBでやった方が楽だしこっちでは表示件数や順序くらいしかいじらない
データベースといってもローカル鯖や組み込みもある、適材適所
514デフォルトの名無しさん (ブーイモ MM22-GxU6)
2017/11/17(金) 17:32:51.55ID:VYtKuwzgM インサート前にソートとかボトルネックだよね
515デフォルトの名無しさん (ワンミングク MM52-TGzz)
2017/11/17(金) 18:05:42.37ID:g1yHwUG3M sources
.GroupBy(s => new { 名前, テスト回数 })
.Select(g => new {
g.Key.名前,
g.Key.テスト回数,
時間 = g.Max(s => s.時間)
});
悩むところねえなぁ
.GroupBy(s => new { 名前, テスト回数 })
.Select(g => new {
g.Key.名前,
g.Key.テスト回数,
時間 = g.Max(s => s.時間)
});
悩むところねえなぁ
516デフォルトの名無しさん (ワッチョイ 4175-jqfw)
2017/11/17(金) 18:29:28.97ID:ZBvifIa80 汎用性低いな。
517デフォルトの名無しさん (ワッチョイ 4175-jqfw)
2017/11/17(金) 18:32:42.23ID:ZBvifIa80 ListTest.GroupBy(item => item.名前).Select(group => group.OrderBy(item => item.時間).Last()).ToList()
ワシのが1番じゃろ。
ワシのが1番じゃろ。
518デフォルトの名無しさん (ワントンキン MM52-TGzz)
2017/11/17(金) 18:42:45.87ID:1r1wVT3lM よくみたら仕様ちゃうやん自分…
src.GroupBy(s => s.名前)
.SelectMany(g => g.Where(t => t.時間 == g.Max(u => u.時間));
これが王道の正解な
src.GroupBy(s => s.名前)
.SelectMany(g => g.Where(t => t.時間 == g.Max(u => u.時間));
これが王道の正解な
519デフォルトの名無しさん (ワントンキン MM52-TGzz)
2017/11/17(金) 18:50:16.49ID:1r1wVT3lM こっちのが速いかな
sec.ToLookup(s => s.名前)
.Select(g => new { g, m = g.Max(t => t.時間)
.SelectMany(p => p.g.Where(u => u.時間 == p.m);
sec.ToLookup(s => s.名前)
.Select(g => new { g, m = g.Max(t => t.時間)
.SelectMany(p => p.g.Where(u => u.時間 == p.m);
520デフォルトの名無しさん (ワッチョイ 4175-jqfw)
2017/11/17(金) 18:50:30.24ID:ZBvifIa80 そういやラムダ式の中の命名は超シンプルでいいんだったな。
>>518 最大値を探すためにループ、その値を持ち主をまた探すためにループってなんかキモくね?それが王道なのか。
>>518 最大値を探すためにループ、その値を持ち主をまた探すためにループってなんかキモくね?それが王道なのか。
521デフォルトの名無しさん (スプッッ Sd82-aK5r)
2017/11/17(金) 19:36:01.87ID:15/bjs8Fd >>482
まず時間と名前でグループ化
時間, 名前, テスト回数
2017/1/1, A氏, 3,4
2017/1/1, B氏, 1,2
2017/2/1, A氏, 1,2
2017/2/1, B氏, 1,2
2017/3/1, A氏, 1,2,3
あとは日付けでソートして名前でDistinctするかな
まず時間と名前でグループ化
時間, 名前, テスト回数
2017/1/1, A氏, 3,4
2017/1/1, B氏, 1,2
2017/2/1, A氏, 1,2
2017/2/1, B氏, 1,2
2017/3/1, A氏, 1,2,3
あとは日付けでソートして名前でDistinctするかな
522デフォルトの名無しさん (ワントンキン MM52-TGzz)
2017/11/17(金) 19:40:08.46ID:hFmoO+PyM >>520
ループ?
SelectManyはSQLで言えば結合みたいなもの
LinqのJoinだとこんな感じかな
src.GroupBy(s => s.名前)
.Join(src,
g => new { 名前 = g.Key, 時間 = g.Max(t => t.時間) },
u => new { u.名前, u.時間 },
(g, u) => u);
SelectManyの方がわかりやすいな
ループ?
SelectManyはSQLで言えば結合みたいなもの
LinqのJoinだとこんな感じかな
src.GroupBy(s => s.名前)
.Join(src,
g => new { 名前 = g.Key, 時間 = g.Max(t => t.時間) },
u => new { u.名前, u.時間 },
(g, u) => u);
SelectManyの方がわかりやすいな
523デフォルトの名無しさん (ワッチョイ 4175-jqfw)
2017/11/17(金) 19:46:57.67ID:ZBvifIa80 Maxを探すためにループ、その持ち主また探すためにWhereでループ
524デフォルトの名無しさん (ワッチョイ 6e80-IVKU)
2017/11/17(金) 20:26:05.65ID:/4Y2zvAi0 max ← 持ち主
こういう方向のリンクなら、max を探してから、持ち主も探さなきゃいけないけど、
逆方向のリンクなら、すぐ
こういう方向のリンクなら、max を探してから、持ち主も探さなきゃいけないけど、
逆方向のリンクなら、すぐ
525デフォルトの名無しさん (ワッチョイ 2de3-vU7N)
2017/11/17(金) 20:34:11.03ID:45Grbd2f0 名前、日付で降順ソートして名前ごとの最新取るだけでなげーな
526デフォルトの名無しさん (ブーイモ MMf6-/KPb)
2017/11/17(金) 20:40:49.52ID:2lBbqhr3M >>525
それ結局最後まで舐めないと全ての名前が分からないから何の意味もないぞ
それ結局最後まで舐めないと全ての名前が分からないから何の意味もないぞ
527デフォルトの名無しさん (ワッチョイ 6ee8-LGLT)
2017/11/17(金) 21:20:38.75ID:Xkp76caL0 LINQって実は裏側でforeachで回してるってホント?
528デフォルトの名無しさん (オッペケ Srd1-R8Lj)
2017/11/17(金) 21:41:36.29ID:SHrICtEWr >>527
ループは一回
ループは一回
529デフォルトの名無しさん (ワッチョイ 6e80-IVKU)
2017/11/17(金) 21:50:29.21ID:/4Y2zvAi0 例えば、100個の中から、1個を探すのは、全(線形)探索 O(n) しかできない
全データにインデックス・ハッシュがついていれば、O(1)だが、
ソートするには、全探索する必要がある
DB みたいに、B-tree でソートされているのなら、O(log n)
「アルゴリズムと計算量」を勉強して
全データにインデックス・ハッシュがついていれば、O(1)だが、
ソートするには、全探索する必要がある
DB みたいに、B-tree でソートされているのなら、O(log n)
「アルゴリズムと計算量」を勉強して
530デフォルトの名無しさん (ワッチョイ 2de3-vU7N)
2017/11/17(金) 21:53:48.98ID:45Grbd2f0531デフォルトの名無しさん (ワッチョイ 8de4-zZYI)
2017/11/17(金) 22:28:51.51ID:fmtM/py00 こんなにレスが付いてるとは思わなかった。
無事満足いく結果がとれるようになりました。
試したことないのもあって勉強になりましたありがとうございます。
無事満足いく結果がとれるようになりました。
試したことないのもあって勉強になりましたありがとうございます。
532デフォルトの名無しさん (ワッチョイ a9c9-RuWE)
2017/11/17(金) 22:41:16.10ID:bpYBjcB50 >>527
記述によっては複数回どころか毎回ループもあり得るから注意な
記述によっては複数回どころか毎回ループもあり得るから注意な
533デフォルトの名無しさん (アウアウイー Sa91-dUYE)
2017/11/17(金) 23:53:01.59ID:f2B03iH5a foreach版も作ったけど
一回回すだけで辞書はできるので計算量は減るし再利用にも便利
一回回すだけで辞書はできるので計算量は減るし再利用にも便利
534デフォルトの名無しさん (ワッチョイ f9b3-6GxS)
2017/11/18(土) 01:22:17.61ID:dA2WGfe00 DBに接続して操作するクラスを作ってるのですが、コンストラクタでDBに接続してデストラクタとDisposeで切断処理を書こうと思っています
基本的にはこのような書き方でいいのでしょうか?
各処理のメソッドで接続切断を仕込むのもあると思うのですが連続で処理する場合たとパフォーマンスの低下に繋がると思ったので気になりました
基本的にはこのような書き方でいいのでしょうか?
各処理のメソッドで接続切断を仕込むのもあると思うのですが連続で処理する場合たとパフォーマンスの低下に繋がると思ったので気になりました
535デフォルトの名無しさん (ワッチョイ 220c-KWQn)
2017/11/18(土) 01:26:06.53ID:uyqqFOTJ0 これEXISTS使うSQLの定番問題なんでその定番SQLが生成されるようにAnyするのが最速
そう、EFならね
そう、EFならね
536デフォルトの名無しさん (ワッチョイ 2de3-vU7N)
2017/11/18(土) 01:33:21.33ID:Q2wZVPR60 >>534
途中でLANケーブル抜いたらどういう動作するの?
途中でLANケーブル抜いたらどういう動作するの?
537デフォルトの名無しさん (ワッチョイ 2de3-vU7N)
2017/11/18(土) 01:34:15.67ID:Q2wZVPR60 そしてすぐに指す!
538デフォルトの名無しさん (ワッチョイ f9b3-6GxS)
2017/11/18(土) 01:37:14.30ID:dA2WGfe00 >>536
DBはローカルなんでそこは考えてませんでした
途中でDBとの接続切れたらエラー返すぐらいしか考えてないですね
そこでクラス抜けるようにするかどうかは分かりませんがデストラクタかdisposeに入ると思います
まだ実装してませんが
DBはローカルなんでそこは考えてませんでした
途中でDBとの接続切れたらエラー返すぐらいしか考えてないですね
そこでクラス抜けるようにするかどうかは分かりませんがデストラクタかdisposeに入ると思います
まだ実装してませんが
539デフォルトの名無しさん (ワッチョイ f9b3-6GxS)
2017/11/18(土) 01:37:59.01ID:dA2WGfe00 >>535
接続部分はAnyでまとめた文打ち込む前後だけ開くってことでしょうか?
接続部分はAnyでまとめた文打ち込む前後だけ開くってことでしょうか?
540デフォルトの名無しさん (ワッチョイ 220c-KWQn)
2017/11/18(土) 02:05:22.67ID:uyqqFOTJ0 >>539
悪いが俺のレスは質問と関係ないぞ
ちなみに各DBのコネクションクラスは質問通りのIDisposableな自動Close設計で
連続する処理する場合はコネクションを開いたまま使いまわすのが普通
SQLite.NETが参考と言うかやりたいことそのままじゃないか?
悪いが俺のレスは質問と関係ないぞ
ちなみに各DBのコネクションクラスは質問通りのIDisposableな自動Close設計で
連続する処理する場合はコネクションを開いたまま使いまわすのが普通
SQLite.NETが参考と言うかやりたいことそのままじゃないか?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 ★2 [Hitzeschleier★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★2 [ぐれ★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 日経平均の下落率3%超す、財政懸念で長期金利上昇 ★2 [お断り★]
- 【実況】博衣こよりのえちえち歌枠🧪
- 【高市朗報】 日本政府「一昨年は1300億円。去年も防衛費が1100億円余ったw」 日本の防衛費は充分足りてる事が判明。増やす必要無し [485983549]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 高市早苗「支持者の理解を得られないので台湾発言を撤回できない」 [931948549]
- 外務省局長、よくわからないまま帰国へ [834922174]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
