[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/25 06:40 / Filesize : 247 KB / Number-of Response : 1019
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ふらっと C#,C♯,C#(初心者用) Part133



1 名前:デフォルトの名無しさん [2017/11/07(火) 21:11:25.20 ID:LeQqgpmT0.net]
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。

内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。

なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっと C#,C♯,C#(初心者用) Part132
mevius.5ch.net/test/read.cgi/tech/1507543256/

■関連スレ
C#, C♯, C#相談室 Part95
mevius.5ch.net/test/read.cgi/tech/1508180530/

■コードを貼る場合は↓を使いましょう。
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
referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured

411 名前:デフォルトの名無しさん [2017/11/15(水) 12:05:06.75 ID:RrK4s1ZI6.net]
if (isFirst(item)) { prevList.Add(new List<string>() };
括弧ミスった

412 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 12:05:11.35 ID:Tar4qvIud.net]
Func<T,bool> を受け取るSplit関数定義した方が後で楽じゃね?

413 名前:デフォルトの名無しさん [2017/11/15(水) 12:07:15.90 ID:RrK4s1ZI6.net]
確かにその方がスッキリするな。
いずれにしろsplitの中身を定義しないといけないけど

414 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 12:29:09.51 ID:DCxsxqPWd.net]
>>405
Agreegate余り使ったことなかったけど便利だな
こっちの方が綺麗だ

if (isFirst(item) ||prevList.Count>0)
書いてなかったけど、リストの先頭が〇とは限らないのでこんな感じで

415 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 12:35:31.31 ID:MLdh1wBXM.net]
Aggregateは宣言的でないので関数型に慣れたらむしろ読み辛く感じるようになる
考え方が実質的に手続き型だから、手続き型に慣れてる人には馴染みやすいので濫用されてしまいやすい

416 名前:デフォルトの名無しさん [2017/11/15(水) 12:43:50.52 ID:LdCnvqY76.net]
関数型の典型的な関数みたいにバッ、バッって感じじゃなくてズィーンて感じだからか。
>>401のやり方だと使ってる関数はバッバだけ感じかもしれないけど外部変数使ってるから内外に絡み合ってるのがあれだけどどうすればいいんだろう

417 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 12:46:35.76 ID:h8srGYM+0.net]
Select/Aggregateなんて変な書き方せず素直にmap/reduceでいいのにな
SQLっぽくというコンセプトで台無しになってる感じ

418 名前:デフォルトの名無しさん [2017/11/15(水) 12:48:32.27 ID:LdCnvqY76.net]
ズィーン→ズインッ→ズィッ→バッ
こう見れば畳み込みも関数型に馴染む

419 名前:デフォルトの名無しさん [2017/11/15(水) 12:49:52.25 ID:LdCnvqY76.net]
>>412
まあこの場合ではSQLを扱ってるわけじゃないしな



420 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 12:54:47.35 ID:l4Bv56LcM.net]
関数にした方が見やすいじゃん
無駄に不具合出して喜ぶ低能過ぎる

421 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 13:11:40.68 ID:DCxsxqPWd.net]
確かに目新しさにおおーってなったけど、これただのforeachでいいな
やっぱシンプルにループさせるのが最強か

var result = new List<List<string>>();

list.ForEach(item => {
if (isFirst(item) || list.Count <= 0){
result.Add(new List<string>());
}
result.Last().Add(item);
});

422 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 13:14:41.39 ID:MLdh1wBXM.net]
var sep = list.Select((x, i) => new {x, i})
.Where(xi => xi.x == '○')
.Select(xi => new[] {'○'}.Concat(
 list.Skip(xi.i + 1).TakeWhile(x => x != '○')));
こうかな
関数作った方がいいのは同意する

423 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 14:15:45.67 ID:1p9gbgPTa.net]
上のお題、結果がIEnumerable<IEnumerable<string>>でいいなら、

var list = new List<string>() { "○", "×", "×", "×", "○", "△", "△", "○", "△" };
var index = 0;
var hoge = list.GroupBy(x => x == "○" ? ++index : index);

ではだめ?

424 名前:デフォルトの名無しさん [2017/11/15(水) 17:26:29.53 ID:7R79hyBA0.net]
>>416
それ意味的にはaggregateと全く変わらない
初期値が外にあるか引数のところにあるかしか違いない

425 名前:デフォルトの名無しさん [2017/11/15(水) 17:30:36.24 ID:7R79hyBA0.net]
>>417
それaggregateより読みやすいと思うか?

426 名前:デフォルトの名無しさん [2017/11/15(水) 17:40:07.85 ID:7R79hyBA0.net]
>>418
その型じゃダメでしょ。

427 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 18:02:02.20 ID:1p9gbgPTa.net]
>>421
過去ログろくに読まずに>>418書いたけど、質問者もGrouBy使ってるじゃん>>401

428 名前:デフォルトの名無しさん [2017/11/15(水) 18:04:09.97 ID:uxhVFwQf0.net]
>>422
変換しろよ
その分だけコード長くなるぞ

429 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 18:09:17.28 ID:1p9gbgPTa.net]
>>423
何に変換するの?
元々の質問には最終的に欲しい型の指定はない
単に列挙できれば良いならIEnumerable<IEnumerable<string>>として扱えれば十分



430 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 18:38:01.15 ID:AeO6Jp1U0.net]
いつも思うんだが、この手のやつをLINQでやりたがるやつって何が目的なんだろ
自分ですらすらと書けるならLINQでいいけど、そうじゃないなら勉強以上の意味があるとは思えん

個人的にはシンプルさを競うなら>>418がいいと思う
戻りの型が気に食わないなら
.Select(t => t.ToList<string>()).ToList<List<string>>();
あたり追加すればいいだろ

431 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 18:40:53.79 ID:EAeU3mIh0.net]
こんなのやっててきったねーコード書く癖がついたら嫌だなw

432 名前:デフォルトの名無しさん [2017/11/15(水) 18:46:37.59 ID:iCpU6Box0.net]
お前らが思ってる程きれいでもきたなくもないから安心しろ

433 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 18:49:57.02 ID:rNYxO5wL0.net]
おい!待望の独習C#新版がでるみたいだぞ!

434 名前:デフォルトの名無しさん [2017/11/15(水) 18:56:00.52 ID:SIgrthm30.net]
>>425
変数や関数を定義するのにいちいち名前をつけるのが面倒だからよく使う
無名だらけ

435 名前:デフォルトの名無しさん [2017/11/15(水) 18:56:47.00 ID:SIgrthm30.net]
関数を定義するときには場所にも悩むしな

436 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 19:00:28.04 ID:DCxsxqPWd.net]
>>418
Selectなくても大丈夫だったか
hogeのGetEnumeratorが呼ばれる度にindexが増えていくのが気になるけど

戻り値はIEnumerableでもIGroupingどっちでもいいけどkeyは隠すかも
もし必要になったら以下のメソッドを作って、foreachと速度比較してって採用するかどうかって感じかな
色々と参考になった

public static IEnumerable<IEnumerable<string> Split<T>(IEnumerable<T> source, Func<T, bool> predicate){
var index = 0;
return source.GroupBy(x => predicate(x) ? ++index : index);
}

437 名前:デフォルトの名無しさん [2017/11/15(水) 19:05:07.59 ID:JCFmpBxh0.net]
俺嫌われすぎだろ
アスペルガー症候群だから仕方ないのか

438 名前:デフォルトの名無しさん [2017/11/15(水) 19:06:53.89 ID:LdCnvqY76.net]
スリップが****-7wKgのは全部ワシじゃ

439 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 19:46:43.95 ID:h8srGYM+0.net]
linqより何でもListにしないと心休まらない兄貴の方が重症かもな



440 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 19:57:17.06 ID:rGQqr4VZr.net]
>>434
ww
現場にもよくいる

441 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 20:39:25.83 ID:ILed194Q0.net]
>>428
ここにいる人らにはもう必要ない

442 名前:デフォルトの名無しさん [2017/11/15(水) 20:42:42.91 ID:4QHQX7jw0.net]
>>434
アカンか?

443 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 21:21:02.68 ID:EAeU3mIh0.net]
linqだからで許されてるクソコード延々貼り付けたガイジはさっさと死ねよ

444 名前:デフォルトの名無しさん [2017/11/15(水) 21:25:59.97 ID:md1eodvT0.net]
LINQが良いか悪いかは別にしてLINQを必要以上に毛嫌いする奴って頭悪いだけだろ。

445 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 21:34:02.77 ID:EAeU3mIh0.net]
>>439
今回のは普通に書いた方が綺麗だったよね?

446 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 21:34:15.53 ID:O2CkROvj0.net]
ここ数日の有り様は何なんだろう
C#養護学校の卒業式でもあったのかね

447 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 21:35:20.82 ID:EAeU3mIh0.net]
linq友の会スレ使えよガイジ

448 名前:デフォルトの名無しさん [2017/11/15(水) 21:36:55.30 ID:4L7ZsFBR0.net]
必要以上にってのが言いたかった。
実用性は別としてリスト操作系関数でスラスラ書ける奴にコンプでもあるのかって思っちゃう

449 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 21:39:23.16 ID:EAeU3mIh0.net]
>>443
え?
そんなの気にしたことないや
プログラムなんて組めるようになったらそこでスキルレベルマックスだろ



450 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 21:43:12.25 ID:EAeU3mIh0.net]
あとは
設計書記述スキルを上げるか
見積り書記述スキルを上げるか
議事録作成スキルを上げるか
した方がナンボか実りがあるよ

451 名前:デフォルトの名無しさん [2017/11/15(水) 21:44:53.19 ID:4L7ZsFBR0.net]
しかし自分の苦手な物を使える奴にはコンプを感じる

452 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 21:46:47.98 ID:D6YDuXrJ0.net]
>>440
レスいくつも書き込むくらいならそのコード提示したらいいのに

453 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 21:48:01.68 ID:EAeU3mIh0.net]
>>447
別に俺そこ

454 名前:アだわらんよ
興味ねーし
お前にも
[]
[ここ壊れてます]

455 名前:デフォルトの名無しさん [2017/11/15(水) 22:15:03.22 ID:mH4zmpJW0.net]
興味ねーならゴミだのクソだのほざいてんじゃねーよw

456 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 22:17:35.92 ID:EAeU3mIh0.net]
>>449
クソコードを嬉々として貼られるのは見逃せないな
荒らしと変わんねーし

457 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 22:20:30.39 ID:EAeU3mIh0.net]
どれだけ偉そうな主張があるのかと思えば
貼ってあるのはクソコードばかり
linq貼ってるやつ目障りだから死ねよ
普通に組んだ方が綺麗なコードなら持ってくんなよ
だっせ

458 名前:デフォルトの名無しさん [2017/11/15(水) 22:21:20.95 ID:txwTk3zR0.net]
おまえの価値基準で判断すんなw
コンプ感じてるだけw

459 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 22:24:54.13 ID:qS39jpKw0.net]
これ以上はLINQスレでやれと言おうとしたらもう落ちているのね



460 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 22:25:31.88 ID:EAeU3mIh0.net]
>>452
いいじゃん
便所の落書きなんだし
俺が書くスペースもあんだろ

誰でもかける処理わざわざ複雑にして
悦にいってるマヌケなPGみて
安心感を得られるセラピー効果もある

461 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 22:26:54.12 ID:EAeU3mIh0.net]
>>453
linq誰も使ってないからな

462 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 22:28:44.48 ID:D6YDuXrJ0.net]
まあコード書けないアホは相手にしなくていいよ

463 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 22:35:29.64 ID:EAeU3mIh0.net]
どっちかっていうとアプリを作れないアホだな
まあ、コードで何か主張したいならGitHubでもやればいいのに
こんな便所でしか主張できないなら
クズどものlinqライフもここでしめーだろ

464 名前:デフォルトの名無しさん [2017/11/15(水) 22:39:12.32 ID:E1HTns1P0.net]
ウハwwwwww
書けない奴が批判の図wwww
権利すらなしwwwwwww

465 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 22:44:23.78 ID:EAeU3mIh0.net]
>>458
クソコード貼っていい気になってるの?
アドバイスしてあげるけど
滅茶苦茶レベル低いよ

466 名前:デフォルトの名無しさん [2017/11/15(水) 23:03:01.93 ID:vH3D/QHI0.net]
キミ流のコードおなシャス!

467 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 23:19:43.56 ID:rNYxO5wL0.net]
>>436
ここは初心者スレじゃないのかw

468 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 23:22:37.65 ID:vwyVPxZJp.net]
人間初心者のスレですよ、たぶん

469 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 23:25:46.54 ID:vwyVPxZJp.net]
正確にはC#で記述された人工知能なんですけどね



470 名前:デフォルトの名無しさん [2017/11/15(水) 23:26:21.77 ID:H4muME/S0.net]
>>428
どこ情報?

471 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 23:47:19.33 ID:EAeU3mIh0.net]
>>464
amazonで予約中になってる

472 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 12:14:27.14 ID:x/aWQ3sN0.net]
stringは参照型だから既定値はnullということで合ってるよね?

473 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 12:22:49.67 ID:/4eW5bh4M.net]
>>466
既定値はnullだけどstringはイミュータブル型

474 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 13:24:58.55 ID:lGT15xaEa.net]
>>466
stringは参照型で規定値はnull

475 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 18:15:43.67 ID:7VJMckpW0.net]
WPFじゃなくてWindowsForms内で簡単な3D描画したいんですが
どういう風がいいでしょうか。
とりあえず箱を線で描くだけなんですが。

・DrawLineみたいなので始点終点を3次元(X,Y,Z)で指定し描画
・視点の位置(X,Y,Z)と向きを指定して表示

って風な感じが希望なんですが・・・・

476 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 18:25:02.34 ID:K+YFepCs0.net]
それでいいじゃん

477 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 18:27:37.39 ID:7VJMckpW0.net]
DrawLine の Point型 って X,Y しかないじゃないですか。
X,Y,Z で指定できる DrawLine がないのかと

478 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 18:32:16.65 ID:F5ZZYHwp0.net]
気合で座標計算

479 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 18:39:59.53 ID:K+YFepCs0.net]
カメラ固定でいいんだろ?
ZがXYのどこになるかは簡単な計算で出せる
紙に気に入った角度の3軸を書いて見ればいい



480 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 18:49:26.46 ID:rygh13wZ0.net]
OpenTK

481 名前:でも使えば? []
[ここ壊れてます]

482 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 19:04:34.95 ID:JEjgvNkla.net]
>>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倍する

483 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 19:32:37.14 ID:JEjgvNkla.net]
描画面の中心を原点にする変換も必要かw
こっちはGraphicsの組み込みの機能でできるけど

484 名前:デフォルトの名無しさん [2017/11/16(木) 19:52:49.24 ID:o+kP3k0v0.net]
透視投影
satoh.cs.uec.ac.jp/ja/lecture/ComputerGraphics/3.pdf

485 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 19:57:23.76 ID:K+YFepCs0.net]
そんな面倒なことしなくても
カメラ固定ならXYに足すだけでいいじゃん
Zが1ならXYに0.5ずつ足すみたいのでいいよ
Zが2ならXYに1ずつ足す
Zが3ならXYに1.5ずつ足す
みたいな

486 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 21:38:46.30 ID:ac8ZDyBE0.net]
>>469
URLが何故か張れないんだが
C#3D立方体ワイヤーフレーム (第1回) for VS2013 Express
でググって見つかるところが参考になる
ライブラリを期待しているのならC++で探すしかないだろうな
DLLになっていればC#からでも使えるから

487 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 22:56:01.22 ID:851mScQ5a.net]
いくらなんでもopenGLライブラリはwinforms用ぐらいあると思う

windows forms openglでググれ

488 名前:デフォルトの名無しさん [2017/11/16(木) 23:02:09.93 ID:o+kP3k0v0.net]
>>474でもうでてる

489 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 23:17:24.79 ID:Tv1Vr9CT0.net]
時間, 名前, テスト回数
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



490 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 23:18:08.01 ID:Tv1Vr9CT0.net]
>>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);

491 名前:デフォルトの名無しさん [2017/11/16(木) 23:18:26.88 ID:o+kP3k0v0.net]
LINQの出番再び

492 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 23:19:34.43 ID:eJZERDUZ0.net]
友の会スレに行け

493 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 23:28:56.32 ID:Tv1Vr9CT0.net]
そんなこといわずに優しいレスくれよ
友の会ってどこなの?

494 名前:デフォルトの名無しさん [2017/11/16(木) 23:37:44.24 ID:o+kP3k0v0.net]
list.GroupBy(item=>item.名前).Select(group=>group.Max(item=>item.日時.Ticks)).ToList<Test>()

495 名前:デフォルトの名無しさん [2017/11/16(木) 23:44:12.00 ID:o+kP3k0v0.net]
今試したらエラー吐いたけど参考にしてくれ

496 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 23:44:38.82 ID:Tv1Vr9CT0.net]
>>487
レスありがとうございます。
Ticks使ったことないので参考になりました。
ありがとうございます。

497 名前:デフォルトの名無しさん [2017/11/17(金) 00:03:01.06 ID:LOAPaCxV0.net]
ListTest.GroupBy(item => item.名前).Select(group => group.Aggregate((max, item) => item.時間 > max.時間 ? item : max)).ToList()

498 名前:デフォルトの名無しさん [2017/11/17(金) 00:16:27.21 ID:ZIvR54fI0.net]
DateTimeオブジェクトはそれ自体に大小関係演算子使えるしな

499 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 00:34:17.30 ID:xoZUoffUa.net]
どれも微妙に仕様から外れてるような…



500 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 00:40:57.63 ID:45Grbd2f0.net]
並びの下の方が同じ日付でも最新なの?
まあ、そういうデータよくあるけど

501 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 00:54:10.94 ID:E5GExksf0.net]
SQLだとドヤ顔でExistsしてるブログがたくさん出るやつだな

502 名前:デフォルトの名無しさん [2017/11/17(金) 00:57:10.96 ID:ZBvifIa80.net]
下のやつを最新にしたいなら>=にすればいいのかな
順番通りの保障ないかもしれないけど

503 名前:デフォルトの名無しさん [2017/11/17(金) 01:02:10.05 ID:ZBvifIa80.net]
ienumerbleだからだめか
最初の段階でインデックスとペアにするとか

504 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 01:13:33.00 ID:xoZUoffUa.net]
多分個人の最終日のすべてデータが欲しいんだよね

505 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 01:21:22.13 ID:xoZUoffUa.net]
う〜んできたけど汚い

506 名前:デフォルトの名無しさん [2017/11/17(金) 02:55:06.18 ID:ZBvifIa80.net]
これだけで各々の最新のデータが取れるはず。
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)

507 名前:デフォルトの名無しさん [2017/11/17(金) 02:56:22.67 ID:ZBvifIa80.net]
.ToList()



508 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 09:51:19.99 ID:45Grbd2f0.net]
これ、仕事で使われたらキレるな

509 名前:デフォルトの名無しさん [2017/11/17(金) 10:01:35.59 ID:yfGcWiWk0.net]
落ち着けよ、おっさん。



510 名前:デフォルトの名無しさん [2017/11/17(金) 11:41:22.51 ID:vZ4OY4a56.net]
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();

511 名前:デフォルトの名無しさん mailto:sage [2017/11/17(金) 11:58:47.46 ID:XIkoXTHK0.net]
横に長くて拒否反応出るのも解らないでは無いんだが
読む時は愚直に左から読んでいくだけだし、PowerShell使ってると日常茶飯事だしな……






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<247KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef