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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 8b75-uWnk)
垢版 |
2018/02/04(日) 22:02:28.59ID:FbKpa1HN0
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part134
http://mevius.5ch.net/test/read.cgi/tech/1511951038/
■関連スレ
C#, C♯, C#相談室 Part95
http://mevius.5ch.net/test/read.cgi/tech/1508180530/
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/

■コードを貼る場合は↓を使いましょう。
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: default:vvvvv:1000:512:----: EXT was configured
632デフォルトの名無しさん (ワッチョイ bf76-HsKf)
垢版 |
2018/02/20(火) 20:47:17.84ID:u29zEFTf0
教えたいただいたコードをちょっと変えて
var newtest = test.GroupBy(x => x.date).Select(xs => new hoge { date = xs.Key, no = xs.Sum(x => x.no) });
で期待する結果が出ました

LINQの書き方に慣れていないので参考になります
ありがとうございます
633632 (ワッチョイ bf76-HsKf)
垢版 |
2018/02/20(火) 20:51:26.55ID:u29zEFTf0
>>631
ちなみにですが
xs.Source
部分はインテリセンスが候補として出して来ないので不要ですよね?
実は肝だったらと気になりまして
634デフォルトの名無しさん (ワッチョイ d775-dsKU)
垢版 |
2018/02/20(火) 20:55:58.93ID:rWzsbI8r0
ごめん
そんなものなかった。
2018/02/20(火) 22:02:23.43ID:kFTojjXs0
>>226
https://qiita.com/ikemo/items/4f56a283f9e27cf98d81

同じような話が出てた
2018/02/20(火) 22:09:32.25ID:SJPS4KKx0
>>635
昔から言われていることとは微妙に意味が変わってきているね

flag == false
は OK だが
flag == true
はやめろ!

ってやつじゃない?C では結構重要だ
2018/02/20(火) 22:15:19.97ID:l6nN7Avj0
それってマクロを使ってた flag == TRUE の話じゃなかったっけ。
2018/02/20(火) 22:26:59.92ID:7+Xxu/Ir0
BOOL(intのtypedef)の話だな。flag == true は冗長であることを除けば何の問題もない。
あと、BOOLをTRUEと比較しちゃならんってのもFALSE(0)以外が真とみなされる文脈でのことで、
本当にTRUE(1)を求めているのであればそれと比較することに問題があるはずもない。
639デフォルトの名無しさん (ワッチョイ d775-bVi4)
垢版 |
2018/02/20(火) 22:37:10.96ID:rWzsbI8r0
亀レスワロタ
2018/02/20(火) 22:46:07.64ID:kFTojjXs0
VBでのif thenのせいもあるのかなっと想像した
641デフォルトの名無しさん (ワッチョイ 9f9d-MriG)
垢版 |
2018/02/20(火) 23:41:38.85ID:vzQfIoah0
if(min <= dt && dt <= max){
debug.print("left thing must be a minimum , right must be a maximum");
}
2018/02/20(火) 23:50:23.07ID:rHaxNO+xa
all your base are belong to us かよw
643デフォルトの名無しさん (ワッチョイ 9f9d-MriG)
垢版 |
2018/02/21(水) 00:12:02.20ID:eNjhkesX0
//HACK: This is The Golden Rule of indentation.
if (~) {
 count++;
} else {
 count = 0;
}
//ass:
if (~)
{
}
644デフォルトの名無しさん (ワッチョイ d7ea-QcxC)
垢版 |
2018/02/21(水) 11:59:42.26ID:VoejUmIV0
String flag = "true";
if(flag)
{
}

こんなのを見たことあるw
2018/02/21(水) 16:58:56.77ID:5L11m65+0
通るの?
2018/02/21(水) 18:30:47.40ID:dJIxOW/Y0
通るように String を定義することはできる
2018/02/21(水) 18:37:11.70ID:dZCmv1cV0
無理やろ
2018/02/21(水) 18:46:43.46ID:Vnmm4Cgla
stringじゃなくてStringとか下らない
暇つぶしは否定しないけどもっとプログラマ的に刺激的なこと、それが無理ならせめて面白いこと書いてよ
2018/02/21(水) 18:48:32.18ID:Ih20in6N0
スレチ
2018/02/21(水) 19:12:11.56ID:lcaDkaFmM
>>644
バグ仕込むんじゃねー
651デフォルトの名無しさん (アウアウカー Sa6b-q/Ed)
垢版 |
2018/02/21(水) 23:23:33.56ID:0HngqlDxa
初歩的な質問ですみません
例外で例えば「FileNotFoundException」が発生した場合に、catch文で、「FileNotFoundException」を文字列として取得するにはどうしたらいいでしょうか
エラーログ取得用です
652デフォルトの名無しさん (ワッチョイ 97b3-T3WU)
垢版 |
2018/02/21(水) 23:28:02.97ID:J5LO2Gvl0
[] [[[ [[ [] ][ [] [ ] [] ][]] [[[ [] }
2018/02/22(木) 00:11:15.74ID:0C9wYxln0
e.GetType().Name とかじゃなかったっけ。
2018/02/22(木) 02:07:28.18ID:WgWypcu80
エラーログならむしろex.ToString()全部出したら良くない?
2018/02/22(木) 05:55:09.08ID:F283i7SW0
だな。Tostring一択
656デフォルトの名無しさん (アウアウカー Sa0a-V3L7)
垢版 |
2018/02/22(木) 08:04:35.65ID:WBY2nmtra
>>651です
今はToStringで出してるんですが、行数節約の為にと思いまして。>>653で試してみます。
ありがとうございました
2018/02/22(木) 12:18:16.08ID:p5bjr4/wM
>>656
NLogつかえや!
2018/02/22(木) 12:27:17.12ID:i1dlLV3xd
要件に対してオーバースペックなのを勧めるのは良くない傾向だと思うにゃ
2018/02/22(木) 16:09:55.97ID:ObzUt2i10
最低限の手法を説明しつつ、若干オーバースペックな手法も説明して選択させるのが好き。
メリットデメリットもちゃんと説明する。
普段そうしてる。
2018/02/22(木) 16:50:59.99ID:p5bjr4/wM
だって行数節約っていうから
2018/02/22(木) 19:46:57.01ID:VeFo5xTp0
n個の"hoge"が入っている配列を作りたいんだけど、
Enumerable.Range(1,n).Select(i => new{"hoge"}).ToArray()
で良いのかな?
662デフォルトの名無しさん (ワッチョイ 2175-xOks)
垢版 |
2018/02/22(木) 19:50:23.58ID:c2upgmLY0
new{"hoge"}とは
2018/02/22(木) 20:42:16.50ID:20xIHcyU0
ラムダ見るといつも頭混乱するんだけどこれって見やすいの?
664デフォルトの名無しさん (ワッチョイ 2175-xOks)
垢版 |
2018/02/22(木) 20:44:44.31ID:c2upgmLY0
for, foreachも見にくい
2018/02/22(木) 20:52:56.87ID:aE40aQ4S0
クエリ式の方が苦手
ラムダだとIntelliSenseでスペルミス防げるじゃん
2018/02/22(木) 21:03:00.95ID:6kd3n/c10
>>663
書いてるモノによる
667デフォルトの名無しさん (ワッチョイ 2175-xOks)
垢版 |
2018/02/22(木) 21:23:11.48ID:c2upgmLY0
個人的にはラムダは抵抗なく読める
Pythonの内包表記は苦手
2018/02/22(木) 21:36:26.77ID:p5bjr4/wM
>>663
慣れ次第
2018/02/22(木) 23:02:42.06ID:IK6zTzSaM
>>663
見やすいと思うが個人差あるな
ただまあλの利点って見やすさじゃないからな
2018/02/23(金) 01:43:15.14ID:+/1erS1S0
>>661
Enumerable.Repeat("hoge", n).ToArray() じゃいかんのか
671デフォルトの名無しさん (ワッチョイ 2175-xOks)
垢版 |
2018/02/23(金) 08:15:24.95ID:n9Q43L/40
リンク否定派==ラムダ式嫌悪厨
672デフォルトの名無しさん (ワッチョイ fc83-MTlB)
垢版 |
2018/02/23(金) 11:21:56.45ID:xR1rHjlT0
ラムダは過去に一度滅んだ技術だからな。普及するわけがない。
2018/02/23(金) 11:37:33.59ID:uhME+YqbM
Lisp復活祭
2018/02/23(金) 11:53:38.72ID:dbfjnWwbM
>>670
それじゃ初心者相手にマウンティングできないだろ
675デフォルトの名無しさん (ワッチョイ fd9e-POFq)
垢版 |
2018/02/23(金) 11:56:12.27ID:dqKzXa4r0
EFでList<string>のデータを保存するにはどうしたらいいの?
676デフォルトの名無しさん (ワッチョイ 709d-POFq)
垢版 |
2018/02/23(金) 13:43:16.80ID:HedUeMcC0
その前にEFってなにか説明してくれるか?
2018/02/23(金) 14:28:52.12ID:mpvgXBL20
>>672
え?滅んだんですか?何の技術だったんですか?
678デフォルトの名無しさん (ワッチョイ fc83-MTlB)
垢版 |
2018/02/23(金) 14:31:57.61ID:xR1rHjlT0
>>677 ←今日最高の馬鹿。
679デフォルトの名無しさん (ワッチョイ 2175-xOks)
垢版 |
2018/02/23(金) 15:28:51.28ID:n9Q43L/40
>>676
おまえ、初心者丸出しに気づいてないの恥ずかしいな
2018/02/23(金) 15:31:39.83ID:mpvgXBL20
>>678
滅んだ、というのなら、それは何の技術だったのか説明していただけませんか?
681デフォルトの名無しさん (ワッチョイ 2175-xOks)
垢版 |
2018/02/23(金) 15:34:34.35ID:n9Q43L/40
ただラムダ式が苦手なだけな奴の見苦しい言い訳に構うなよ w
2018/02/23(金) 15:37:18.83ID:mpvgXBL20
>>681
だって楽しいじゃありませんか
683デフォルトの名無しさん (ワッチョイ fc83-MTlB)
垢版 |
2018/02/23(金) 16:10:34.36ID:xR1rHjlT0
>>680-682
スレチだからこっちでやってくれませんか。
過疎ってるからって初心者スレで暴れないでくださいよ、低脳馬鹿ラムダ厨さん。

λ ラムダ式は神 ラムダ式を崇めよ λ [無断転載禁止]©2ch.net
https://mevius.2ch.net/test/read.cgi/tech/1494867168/
684デフォルトの名無しさん (ワッチョイ fc83-MTlB)
垢版 |
2018/02/23(金) 16:14:19.23ID:xR1rHjlT0
古典教師とラムダ厨と被るわ。

役に立たない古い知識で初心者スレでマウンティングとか。→ ID:n9Q43L/40 www
685デフォルトの名無しさん (ワッチョイ 2175-42by)
垢版 |
2018/02/23(金) 16:14:40.70ID:n9Q43L/40
C#の例外処理スレを立てたらここはスレチになるのか w
ほんとラムダ式嫌悪厨は哀れだな w
2018/02/23(金) 16:23:23.04ID:mpvgXBL20
>>683
C# にラムダ式はあるのにどうしてスレ違いなんでしょうか?
687デフォルトの名無しさん (ワッチョイ fc83-MTlB)
垢版 |
2018/02/23(金) 16:23:25.22ID:xR1rHjlT0
LINQスレあったよな。なぜそっちでやらないの?
あっ落ちたのかw 過疎りすぎて誰も次は立てる気がないようだw

だって10年でたった1スレすら消費できなかったからなwww 誰も興味ないかよほど嫌われてんだなw
2018/02/23(金) 16:23:46.81ID:mpvgXBL20
>>684
古い?どうして古いのでしょうか?
2018/02/23(金) 16:24:34.36ID:mpvgXBL20
>>687
C# に LINQ はがっちり含まれているのに、どうしてスレ違いなんでしょうか?
690デフォルトの名無しさん (ワッチョイ fc83-MTlB)
垢版 |
2018/02/23(金) 16:27:53.73ID:xR1rHjlT0
ID:n9Q43L/40 ←惨め杉www 初心者スレでマウンティングするしかないww

> リンク否定派==ラムダ式嫌悪厨
> ただラムダ式が苦手なだけな奴の見苦しい言い訳に構うなよ w
> おまえ、初心者丸出しに気づいてないの恥ずかしいな
> ほんとラムダ式嫌悪厨は哀れだな w

ほんとこいつ初心者スレで煽りとマウンティングしかしてねぇw
691デフォルトの名無しさん (ワッチョイ 2175-42by)
垢版 |
2018/02/23(金) 16:27:53.99ID:n9Q43L/40
なにこいつ
692デフォルトの名無しさん (ワッチョイ 709d-POFq)
垢版 |
2018/02/23(金) 16:42:11.85ID:HedUeMcC0
byte[]buf = 1,2,3,4,5、ETX,7,8,9
AX=1,2,3,4,5 
BX=ETX,7,8,9
BufからAX,BXをわけて取り出ししたい。(ETXはAX側でもBX側でも構わない)
AX=buf..TakeWhile(x=>x!=ETX);
とすれば取り込めるが、BXはどうしたらいいのだろう?
693デフォルトの名無しさん (ワッチョイ 2175-42by)
垢版 |
2018/02/23(金) 16:50:56.55ID:n9Q43L/40
SkipWhile
694デフォルトの名無しさん (ワッチョイ 709d-POFq)
垢版 |
2018/02/23(金) 16:56:26.65ID:HedUeMcC0
SkiPWhileは違う。ETXで分離するのが目的だからだ。
695デフォルトの名無しさん (ワッチョイ 709d-POFq)
垢版 |
2018/02/23(金) 16:56:39.74ID:HedUeMcC0
>おまえ、初心者丸出しに気づいてないの恥ずかしいな
初心者丸出しが恥ずかしいことか? 陳湖丸出しとは分けが違うがお前はそういう趣味でもあるのか?

>C# にラムダ式はあるのにどうしてスレ違いなんでしょうか?
主観の問題だ。しかし感受性の問題でもある。ひらたく言うとどこにも頭の悪いのはいる。

>古い?どうして古いのでしょうか?
主観の問題だ。少しズレた主観もある。

>C# に LINQ はがっちり含まれているのに、どうしてスレ違いなんでしょうか?
しつこい質問者だからあえてシツコク答えるが主観の問題だ。しかしシツコク追い求めるのはプログラマーの適正でもある。
696デフォルトの名無しさん (ワッチョイ 2175-42by)
垢版 |
2018/02/23(金) 16:59:23.35ID:n9Q43L/40
なにこいつ
自演かよ w
2018/02/23(金) 17:04:26.33ID:dt6qd38x0
>>687
なぁ、いい加減誰も使って無いって気づいて欲しいぜ
698デフォルトの名無しさん (ワッチョイ 709d-POFq)
垢版 |
2018/02/23(金) 17:07:21.06ID:HedUeMcC0
>>696 
オブラートで包むと意味が解らないか? 解るようにハッキリ言うと荒れるしな。
困ったものだ。
SkiPWhileじゃだめってのはわかるか?
2018/02/23(金) 17:09:44.82ID:qhDonetZ0
このスレってリンクの質問ばっかだろ
なんで使われてないと思うのか謎
もしかして全員同じ人と思ってるの?
2018/02/23(金) 17:11:07.74ID:dt6qd38x0
>>699
それ同じ奴が一人でやってね?
2018/02/23(金) 17:14:54.58ID:dt6qd38x0
だって10年で1スレ消費できないってかなりのもんだよ
まあ、友の会スレに書き込んで無かった君が一番わかってることだと思うし言っても無意味だと思うけどw
2018/02/23(金) 17:16:12.64ID:DtpzHUGD0
>>700
そう思うと怖い
2018/02/23(金) 17:16:16.48ID:Vu0TXWr8d
私の為に争うのはヤメテ!
704デフォルトの名無しさん (ワッチョイ 2175-42by)
垢版 |
2018/02/23(金) 17:17:31.24ID:n9Q43L/40
試しにC#非同期スレ立ててみようぜ w
どうせ伸びないから w
みんな使ってないもんな w
2018/02/23(金) 17:18:24.48ID:uDoJo6b+0
# 先頭文字で、配列の要素をグルーピング
animals = ["cat", "bat", "bear", "camel", "alpaca"]

p animals.group_by {|item| item[0].chr }
{"a"=>["alpaca"], "b"=>["bat", "bear"], "c"=>["cat", "camel"]}


Ruby では、group_by で、配列の要素をグルーピングできる。
ブロックの戻り値が同じ要素で、グルーピングする

他にも、partition で、要素を2つの配列に分けられる
2018/02/23(金) 17:19:14.55ID:MOvRrowfd
>>672
普及してないわけがない
707デフォルトの名無しさん (ワッチョイ 2175-42by)
垢版 |
2018/02/23(金) 17:20:15.65ID:n9Q43L/40
C#でもできる
partionはないが多分GroupByで代用できる
708デフォルトの名無しさん (ワッチョイ 709d-POFq)
垢版 |
2018/02/23(金) 17:30:54.68ID:HedUeMcC0
じゃあGroupBy使って
byte[]buf = 1,2,3,4,5、ETX,7,8,9
をETXの前後で分解してみて。
709デフォルトの名無しさん (ワッチョイ 2175-42by)
垢版 |
2018/02/23(金) 17:31:48.42ID:n9Q43L/40
使用法が明らかに間違ってる
710デフォルトの名無しさん (ワッチョイ 709d-POFq)
垢版 |
2018/02/23(金) 17:37:08.15ID:HedUeMcC0
でも分解する場合には他に適当な方法がないのでは? GroupByとIndexを併用すれば
なんとかならないか?
711デフォルトの名無しさん (ワッチョイ 2175-42by)
垢版 |
2018/02/23(金) 17:38:45.30ID:n9Q43L/40
明らかにそんなやり方よりTakeWhile, SkipWhileを使うやり方のほうが真っ当
712デフォルトの名無しさん (ワッチョイ 709d-POFq)
垢版 |
2018/02/23(金) 17:48:52.71ID:HedUeMcC0
>明らかにそんなやり方よりTakeWhile, SkipWhileを使うやり方のほうが真っ当

不味いんじゃないだろうか?
要するにループを頭から2回まわすことになるだろ。
Ax=  buf.TakeWhile(〜)
Bx= buf.SkipWHile(~)

それならForeachの方がいいとおもう。
AX= ETXを見つけるまでこっちに入れる。
BX=ETXを見つけた以後はこっちに入れる。
713デフォルトの名無しさん (ワッチョイ 2175-42by)
垢版 |
2018/02/23(金) 17:50:19.68ID:n9Q43L/40
効率が問題になるほど大規模なリストなら原始的な書き方をする。
そうでないならLinqでいい
2018/02/23(金) 17:54:47.58ID:SLOEwN9a0
linqがボトルネックにならないならlinqでいいよな。
2018/02/23(金) 18:04:05.03ID:GzrRa5he0
linqがボトルネックになる場合ってそもそもC#でやっちゃいけないでしょ
2018/02/23(金) 18:05:43.07ID:sYB7W00fM
ZDDアルゴリズムを実装してくれればLINQ使うよ
2018/02/23(金) 18:11:18.36ID:Vu0TXWr8d
どうして出来る人アピールしてしまうん?
2018/02/23(金) 18:19:58.97ID:lkjv+i84a
>>692
そういうの、差集合って言うんじゃない?
719デフォルトの名無しさん (ワッチョイ 709d-POFq)
垢版 |
2018/02/23(金) 18:46:00.97ID:HedUeMcC0
>>718
いいね!いいね! そのヒント。 君が一番頭いい。
2018/02/23(金) 18:54:21.63ID:0/Ox6Qa+0
ふふってなった
2018/02/23(金) 18:57:51.46ID:lkjv+i84a
ただ、あるインデックスの前後で二分するだけならたぶん無駄に非効率なんだろうけどね
722デフォルトの名無しさん (ワッチョイ 2175-xOks)
垢版 |
2018/02/23(金) 19:01:32.01ID:n9Q43L/40
Spanとかもあるよな
使えるのか知らないけど
2018/02/23(金) 19:03:45.51ID:uDoJo6b+0
scores = %w[1 2 3 4 5 ETX 7 8 9]

numbers = scores.each_with_object({}) do | num, h |
# 配列の初期化
h[:before] = [] unless h[:before]
h[:after] = [] unless h[:after]

if h[:ETX]
h[:after].push num
else
if num == "ETX"
h[:ETX] = true
else
h[:before].push num
end
end
end

p numbers
{:before=>["1", "2", "3", "4", "5"], :after=>["7", "8", "9"], :ETX=>true}

Ruby の、each_with_index メソッドは、引数に蓄積器を指定して、繰り返し処理する。
空のハッシュ { }に、結果を蓄積していく。
"ETX"があったかどうかの状態を記憶して、処理を分岐する
724デフォルトの名無しさん (ワッチョイ 2175-xOks)
垢版 |
2018/02/23(金) 19:05:18.26ID:n9Q43L/40
よく分からんけどaggregateでできそう
2018/02/23(金) 19:06:59.32ID:uDoJo6b+0
>>723
修正

>Ruby の、each_with_index メソッドは、引数に蓄積器を指定して、繰り返し処理する

each_with_index ではなく、each_with_object
2018/02/23(金) 19:09:29.58ID:+/1erS1S0
var temp = buf
.Select(x => new { value = x, flag = x < etx })
.GroupBy(x => x.flag, x => x.value)
.Select(x => x.AsEnumerable())
.ToArray();
var ax = temp.First();
var bx = temp.Last();
727デフォルトの名無しさん (ワッチョイ 709d-POFq)
垢版 |
2018/02/23(金) 19:41:12.35ID:HedUeMcC0
flag = x < etx
これってETX以前はTrueになる? たぶんそういう意図だろうけど
xはindexだろけど、etxと比較しても駄目って思うが、、、
2018/02/23(金) 19:56:29.96ID:dt6qd38x0
遅い上に分かりにくいとか腹切れよ
2018/02/23(金) 19:58:38.07ID:0/Ox6Qa+0
切腹!
2018/02/23(金) 19:59:57.49ID:BNJod0Dt0
>>670
ありがと、これで上手く行ったよ
2018/02/23(金) 20:10:18.44ID:dt6qd38x0
linqなんてクソ機能を使うと移植が大変になるわけだが
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況