ふらっと C#,C♯,C#(初心者用) Part148
■ このスレッドは過去ログ倉庫に格納されています
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part147
http://mevius.5ch.net/test/read.cgi/tech/1582100741/
■関連スレ
C#, C♯, C#相談室 Part94
http://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/index
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 978 名前:デフォルトの名無しさん (ワッチョイ 1aad-cFKA)[sage] 投稿日:2020/05/26(火) 23:34:30.32 ID:xP2EobkM0 [2/2]
https://www.sejuku.net/blog/47220#Sum
979 名前:デフォルトの名無しさん (ワッチョイ da89-crVl)[sage] 投稿日:2020/05/26(火) 23:55:57.69 ID:pUNOqgdh0 [2/2]
リンク先の例でいうと、ClassName(やその他の項目もあればそれ)も表示させたい場合はどのようにすればいいですか?
980 名前:デフォルトの名無しさん (ワッチョイ 1389-moxv)[sage] 投稿日:2020/05/27(水) 00:07:17.22 ID:Pggemlyq0
>>979 自己レスですが、以下の記述でいけました
var query = result
.GroupBy(x => new { x.Name, x.ClassName })
.Select(x => new Test() { Name = x.Key.Name, Points = x.Sum(y => y.Points), ClassName = x.Key.ClassName });
foreach (var group in query)
{Console.WriteLine($"{group.Name}の合計点数:{group.Points}点;ClassName{group.ClassName}");}
981 名前:デフォルトの名無しさん (スップ Sdf3-Tvg7)[sage] 投稿日:2020/05/27(水) 00:15:29.78 ID:DUgyxf22d
>>980
キーが1つならGroupbyでわざわざ匿名クラス使う必要ないんじゃね?
989 名前:デフォルトの名無しさん (ワッチョイ 9961-moxv)[sage] 投稿日:2020/05/27(水) 09:37:11.33 ID:sy4nr1lC0 [2/2]
>>981
ClassName引き出すのはどうするんだろ?
990 名前:デフォルトの名無しさん (アウアウウー Sac5-5vhd)[sage] 投稿日:2020/05/27(水) 09:58:43.31 ID:liCJZGAla
必要ない
x => x.Name でいい
--------------
.GroupBy(x => x.Name)
.Select(x => new Test() { Name = x.Key.Name, Points = x.Sum(y => y.Points), ClassName = x.Key.ClassName });
にすると、次のようなエラーがでますが、どうしたらよろしいでしょうか。
CS1061 'string' に 'ClassName' の定義が含まれておらず、型 'string' の最初の引数を受け付けるアクセス可能な拡張メソッド 'ClassName' が見つかりませんでした。 >>2
正規化されてないからめんどくさいな。
二重ループみたいですげーダサいけど
var query = result
.GroupBy(x => x.Name)
.Select(x => new Test() {
Name = x.Key,
Points = x.Sum(y => y.Points),
ClassName = result.Find(z => z.Name == x.Key).ClassName }); Ruby では、すべてのクラスの祖先の、Object クラスに、
そのインスタンスのクラス名を返す、class というインスタンスメソッドがあるので、
すべてのクラスで使える
C# には、そういうメソッドが無いの?
p "ruby".class #=> String
p 100.class #=> Integer >>4
ClassName = x.First().ClassName
でおk タプルやジェネリッククラスに対して、型を代入済みの型を作ることってできないんですか?
(string, string)型とか、List<string>型とか、わざわざクラスを作るまでもなさそうなデータ型って簡単に定義できないのでしょうか >>12
紹介しといてなんだけど個人的にはあんま使わない
そのファイル内だけでしか有効にできないし型なんてIDEの補間でさっと書けるんで 1年後に自分が書いたコード見たら「このコードを書いたヤツを出せ!」と海原雄山になるのがオチよなw >>13
ファイル内限定だったのか・・・・ちょっと1ファイルで試してみて使えるものだから、プロジェクト内どこでも使えるんだと錯覚してたぜ・・・・ >>15
最初からusingディレクティブはみんなそうなってるので ActionやFunc使えば入れられるけどそういう話ではない? ActionとかFuncのscopeの外側で定義されてる変数を
中で同じ名前で定義するとローカルのつもりなのに
衝突してるエラーでるけどこのエラーを出さないオプションって何? >>17
C#ではメソッドそのものは型として扱われてないから
直接変数に代入したり引数として渡したりすることはできない
変数に入れたり受け渡しするためにはDelegateという型に入れてやる必要がある
var foo = obj.method;は不可だけど
Action foo = obj.method;なら可 (ActionはDelegateの一つ) >>21
これでvarが使えない(型推論できない?)のはなんでなんだろ? C#で関数ポインタが扱えない理由って関数のアドレスすらもGCによって変更される可能性があるからって事? >>24
ネイティブとのやりとりならGetFunctionPointerForDelegateとかでできるけど
GCが絡む注意点はデリゲートのインスタンスは保持する必要はあるが
インスタンスのピン留めは必要ない 型推論が効かないて言えばさあ
スタティックフィールドで型推定が効かないのって、あれはなんか理由があるの? 理由あるよ
で、次期バージョンでvarではなくnew側の型が省略できる形で導入される予定 Hogehoge fuga = new(123);
みたいな感じになるの? >>26
匿名型の変数は定義して初期化できるのでそれはちょっと
何か事情があるんだろうね
同じシグネチャーのデリゲートは暗黙変換できる仕様にすると何か問題が起こるのかな >>30
そうそうそんな感じ
省略newは今までvar使えてたところでも使えるから
全部省略new派
var使えるところは今までどおりvar使う派
とかが生まれてきそうな感じしてる
varが使えない理由はこないだufcppの人が喋ってた varで書けるのは構わないし楽だけど
本来の型に戻すエディタの機能が欲しい
書くときにvarで書いて保存時には元に戻したい マウスのポインタを乗っけてると推定された型を出してくれるけどさ
あれ正直、表示しっぱなしにして欲しい時もあるよな >>9
遅くなりましたが、解決策をありがとうございました >>33
自動で戻したいならアナライザー書けば?相互変換はもう既にVS上ならできるでしょ。 >>31
匿名型はその名前の通り型があるからね
匿名型は型が明示できなくても明確な用途があるけど
メソッドの場合はどこかで型を明示しないとほぼ使い道ない
デリゲート同士の暗黙変換ができれば別だけど
そっちはコンパイラの変更が大きいから労力に対してメリットが見合ってない メソッド名が匿名のデリゲートの値を生成する式と考えることは可能だと思うけどな
知らんけど
匿名のデリゲートという概念を導入すると何か問題が起こるんだろうか >>37
それは別に君の勝手だけど、単純にnewする時にも冗長に型名並べてるコード見るとイラッとするw Hoge[] h = new Hoge[]{a,b,c};
var h = new Hoge[]{a,b,c};
var h = new []{a,b,c};
Hage h = new Hage(){A=a,B=b,C=c};
var h = new Hage(){A=a,B=b,C=c};
var h = new Hage{A=a,B=b,C=c}; ←この()が要らないのはなぜですか? >>41
ジャバがそうだから真似しただけ
ただの省略
てか省略なんていくらでもある >>39
匿名のデリゲートという概念を導入するとどういうメリットがあるの? 勉強始めて1か月たつけど、現場のプログラマって普段なにしてんだ
言われた通りコードが書ければ仕事になるの? 職種による
実際にコード書いてる時間なんて2割くらいだったりもする
設計やテストのほうが圧倒的に時間取られたりもする >>44
プログラマーって、もう日本にはいない気がする。ここ5年ぐらい日本人のプログラマー見てない。 VSCodeでコード内の適当な句を選んで「定義へ移動」をよく使ってるんだけどさ
これ、移動先から元の場所に戻るのって、「参照へ移動」の中から選ぶしかないの?
もっとパッと戻れる技があったら教えて!!! >>49
Ctrl+-で戻らんか?
カーソル位置を戻すだけど。 セミナーとかお勉強しないと使えないなこの言語は
一時記憶に収まらない
フィーリングで書かせろや
コンパイルとおんねー コンパイルすら通せないやつが動的言語使ったら悲惨だな >>57
VS使ってみ。
フィーリングでほとんど書けるし、補完してくれるから。 >>57
むしろどんな言語ならフィーリングで書けるんだ? >>60
これ、すごいことだと思う。
良く出来てるわ。 静的解析せずにc#を始めるやつおるんやな
いばらの道ぞ VSはなんかVSにコード書かされてる気分になってくる ■ このスレッドは過去ログ倉庫に格納されています