1 名前:名無しぃ♯ [2008/06/21(土) 17:51:22 ] (#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。 c++厨の嵐はスルー汁。 前スレ C#, C♯, C#相談室 Part46 pc11.2ch.net/test/read.cgi/tech/1208791919/ その他テンプレ>>2-5 くらい
552 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 14:13:07 ] もともとHKEY_CURRENT_USERとかはパスではなく、 Registory.CurrentUserなんかに相当するWin32の定数だった。
553 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 18:26:49 ] デフォルトメーラーの起動で質問が有ります。 デフォルトメーラーの新規メール画面を添付ファイル付きで起動させたく、 現在MAPISendDocumentsで実装しています。 しかし、Outlook、Thunderbird、Eudra、Beckyなどは問題無いのですが LotusNotesだとNOT_SUPPORTED=26が返されます。 エクスプローラから「送る」→「メール受信者」や、 Excelの「ファイル」→「送信」→「メールの宛先(添付ファイル)」 などはちゃんと動いており、この機能はMAPIを使っているものだと思っていますが、 (これ自体間違っているかもしれませんが・・・) MAPIを使って他に添付ファイル付きで起動させる方法をご存じの方おりませんでしょうか? MAPIを使わなくても別の方法でも問題有りません。 いろいろウェブで探してみましたが結論には至りませんでした・・・
554 名前:デフォルトの名無しさん [2008/07/31(木) 22:53:14 ] Formの移動時やリサイズ時に枠線だけ動いたり変形している のと同じ描画を行いたいのですが、別のダミーのフォームを Style.Noneで実現しているのでしょうか。その場合はWinProcなどを 用いてWindowMessageを処理して実現可能でしょうか? その場合はMouseをCursorオブジェクトなどを使って操作して、 OnResizeメソッドなどをプログラム側から発生させてダミーのForm側 にMouseを乗り移らせるようなことが可能なのでしょうか・・・ この辺ご存知の方、できましたらアドバイス等頂きたく(それとも、 あれはデスクトップに直接描画とかしているのでしょうか?)
555 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 23:15:37 ] デスクトップにControlPaint.DrawReversibleFrameする簡単な実装は お気に召さないの?
556 名前:デフォルトの名無しさん [2008/08/01(金) 00:59:41 ] >>555 おお、そのような便利なモノがあったのですか!! 調べてみます!ありがとうございました!
557 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 11:46:10 ] すいません、質問です。 C#をベースにしたらしい言語を使ってます。 #includeを使いたいですが、これ自体はないようなので、 どういった手法をとればよいのでしょうか? importだかusingだかで、他から引っ張って来るような記述はあったんですが、 目的の機能ではないみたいで…。 目的としては、mainを含む上位部分を使いまわししたいんです。 で、下位部分を手動で大量に作って、共通部分の上位部と組み合わせてそれぞれコンパイルするような。 何かありますでしょうか?(´・ω・`)
558 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 11:47:18 ] C#をベースにした言語って?
559 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 11:53:29 ] Cω
560 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 11:53:57 ] シーチンコ?
561 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 12:01:40 ] 特に名称はないみたいです。 ツール内のみのスクリプト扱いなので。
562 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 12:02:55 ] ふうやれやれ
563 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 12:07:01 ] >>561 どんなツールだか知らんけど、そのツールのベンダーフォーラムなり ユーザーフォーラムなりそういうものはないのか? 構文だけC#に似せているのか、実際に.NET Frameworkを利用している のかもわからんし、アドバイスのしようがない。
564 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 12:30:11 ] >>563 確かにそうっすね。(´Д`; フォーラム系はないっす。マニュアルもろくに整備されてなくて。 サポセンもアウアウです、はい。orz ただ、基本的にはC#を汲んでるらしいので、 ひょっとしたらC#の手法が通るのでは? と思って質問しました。
565 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 12:44:12 ] C#ではCみたいなソースの使い回しはできないんじゃね?
566 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 13:00:15 ] ソースを分割するといってもせいぜい、partial classぐらいだろうな しかもあれはフォームデザイナーのための苦し紛れの構文だし。 むしろC#ライクな言語ってすごく不思議だな。C#をスクリプトとして使いたいならCodeDOMでコンパイルすればいいし blogs.sqlpassj.org/yoneda/archive/2004/10/07/4724.aspx みたいなやつか?使い方は知らないがw
567 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 13:34:35 ] >>564 そのツールって何?
568 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 13:39:18 ] >>564 言語の出所をはっきりさせない 理由も言わない サンプルコードも示さない お前何しに来たの?
569 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 13:50:08 ] >>564 ツール・・・ここらへんっすね。 ttp://www.accuratetechnologies.com/jp/products/canlab-software-179-175.html ttp://www.necel.com/micro/ja/partner/vendor/ATI/CANLab.html >お前何しに来たの? C#で#includeをする方法を聞きにきました。
570 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 13:59:42 ] その言語は知らないけどとにかくC#に#includeは無い 設計するときに無いほうがいいだろうと判断されたから無い
571 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 14:08:01 ] DLLにしてしまうのがいいかもね
572 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 14:19:08 ] きっとCでもこういうのincludeして悦に浸ってる人なんだよ #define program int main() { #define begin { #define end return 0; }
573 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 14:30:19 ] >>569 金払って買ったもののサポセンがないってどういうことよ 1ライセンス100万とかそういうソフトだろ とりあえず#includeに相当するC#のキーワードは#usingだが 使い方はC++でいうところの namespace std; だからまるで別物 とりあえずサンプルコードでもなけりゃ助言しようもないし 上司に相談したほうがはやいと思うぞ
574 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 14:31:49 ] ×namespace std; ○using namespace std;
575 名前:554 [2008/08/01(金) 15:06:49 ] 「ドラッグ中にウインドウの内容を表示するかどうか」をWindowsの オプション設定で決めることができますが、 ドラッグ中にウインドウの内容を - Google 検索 www.google.co.jp/search?hl=ja&lr=&q= ドラッグ中にウインドウの内容を&start=10&sa=N この設定がされているか、されていないかを、プログラム側から 知る方法を知りたいのですが、参考になる情報をご存知でしたら アドバイスをお願いします!
576 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 15:09:31 ] >>572 ワロタwでも一部分だけpascalでも意味内から無駄だな。
577 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 15:10:13 ] >575 www.google.co.jp/search?hl=ja&q=%E3%83%89%E3%83%A9%E3%83%83%E3%82%B0%E4%B8%AD%E3%81%AB%E3%82%A6%E3%82%A4%E3%83%B3%E3%83%89%E3%82%A6%E3%81%AE%E5%86%85%E5%AE%B9%E3%80%80%E3%83%AC%E3%82%B8%E3%82%B9%E3%83%88%E3%83%AA
578 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 17:21:50 ] >>571 DLLっすか。それで引っ張ってこれるなら・・・。 中々情報がないですが、漁って見ます。 >>573 サポセンあるにはあるんですが、質問したら 激しく役に立たないサンプルソースがヤル気なく返ってきました。('A` 相談したいんですが、社内での導入が実質初なので。 まともに使ったこと有る人、他にいないんです。 サンプルコード・・・一部抜粋して書いてみました。 役に立たなそうですが。(´Д`; MessageItem frm_ENG; public override void OnStart() { frm_ENG = GetMessage("ENG"); StartTimer("ENG",200); Start_test(); } [Timer("ENG",200, false , false)] public void OnTimer_t_ENG() { StartTimer("ENG",200); SendMessage(frm_ENG); } public void Start_test(){ WriteLine("start"); } 共通的に記述が2500行位で、それを百前後作るんで、 できれば引っ張ってきたいんですよね。
579 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 17:22:32 ] >>577 情報、どうもありがとうございました。 助かりました、すぐ調べてみます!
580 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 19:55:51 ] >>578 C#つかOO言語触ったことなくね?
581 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 21:24:42 ] >>578 が2chでヤル気なく質問してきた理由がわかった('A` 気の毒すぎるw C#とWindowsAPIが混ざってるよね… Timerを属性指定にして メソッドに依存させてしまっているあたりセンスのなさが感じられるww とりあえず>>578 が何をやりたいかということと サンプルソース全部と あともう微妙にスレ違いなんで、 どっかの放棄されたスレに移るかして、 腰を据えて分析するよりないんじゃないかなw パズル感覚で協力してくれる人いると思うよww
582 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 22:08:48 ] codedom使ってコンパイルしてるだけでC#なんだと思うよ つか常識的に考えて#includeで展開とか不要でそ… どんな状況なら必要なんだよ…
583 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 22:45:15 ] よくわからんけどincludeなんて前世代的だとおもう
584 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 23:01:12 ] なんという蘭学事始。
585 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 23:27:49 ] >>583 そうかもしれんが、かといってグローバルな(つまりファイルスコープじゃない) コンパイル定数を定義しようと思ったらプロジェクトのプロパティに ちまちま書かなければならん不便さを進歩と言ってよいのか疑問でもある。
586 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 23:32:02 ] >>585 定数も、const じゃなくて、static readonly なプロパティ使うことが推奨されてるしなぁ。 private/internal な場合か、円周率みたいに絶対変わらない値だけ const。
587 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 23:33:43 ] 定数だったら、たとえばColor.Redみたいに、クラスのpublicな要素でぜんぜん不便を感じてないけど。 そういうことじゃなくて?
588 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 00:03:34 ] お前は黙ってろ
589 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 00:05:26 ] お前がだまれ。
590 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 02:37:56 ] >>587 プリプロセッサシンボルを使いたいんだろうね >>585 はプロジェクトのプロパティでしか設定できないと思い込んでいるらしいが
591 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 05:28:26 ] >>583 クラス定義とか、テキストエディタさえあればヘッダ除けばすぐに判る点とか、 C/C++やってきた自分としては好きですけどね
592 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 08:38:54 ] クラス定義は嬉しいけど、インクルードする順番によってコンパイルが通らなくなったりするのは最悪だった
593 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 08:56:42 ] >>591 俺は C++ やってるからこそ、 あのヘッダシステムのせいで クラスの依存性切るのに pimpl みたいなおまじないが必要だし、 コンパイル速度が低下するし、 インテリセンスの効きが時々おかしくなるし、 include が大嫌いなんだが。
594 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 09:58:15 ] C、C++のincludeが遅いのはマクロのせいでしょう
595 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 10:01:48 ] C++の の間違いじゃない? Cはよほど下手な組み方でもしなければそうそう遅くならないでしょ
596 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 10:01:52 ] #includeが欲しいだけならプリプロセッサでもかませばいいじゃん。
597 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 10:22:18 ] 目立つのはC++になるね。 でもCも速度としては遅いし、ヘッダーを1バイトでも書き換えたら includeしてる全てのソースファイルを再コンパイルになるのはかわらない。 そういう意味でも遅いよ。 もしマクロがなくて、クラスや関数の定義のみであるなら リアルタイムコンパイルも可能だよ。
598 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 10:22:40 ] C みたいな関数宣言と #define だけのためにあるシステムを、 C++ でクラス定義でも使いまわしたのがそもそもの失敗じゃないか。 private な変数1個追加しただけで、#include してるファイル全部再コンパイルとか 狂ってるとしか言いようがない。
599 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 10:26:47 ] そこでpimplイデオムですよってスレ違いじゃねぇかよ
600 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 10:41:17 ] >>590 すまんその「思い込んでる」のは俺だけど、 俺の「思い込み」だというならもったいぶらずに君のいう別の方法を教えてくれよ。 分かってると思うけど議論の流れからいってIDEでプロジェクトの設定いじるより 不便な方法だったなんの意味もないわけだが、そこは踏まえて頼むよ本当。
601 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 11:11:56 ] >>600 普通に教えてくれでいいんじゃね? 頼みかた感じ悪いと思う いつもそうなん?
602 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 11:35:10 ] VSのマクロでCSharpProjectConfigurationProperties3.DefineConstants触るとか
603 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 11:39:48 ] >>599 既出 >>593 >>600 定数定義用の static なクラス作って、 絶対に変わらないと言い切れる定数は public const フィールド、 そうでなければ public static readonly なプロパティ。
604 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 11:41:14 ] あと、#if SYMBOL 用のシンボル定義は、 むしろヘッダファイルでできるべきではなく、プロジェクトのプロパティですべき というのが MS の判断。
605 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 11:54:44 ] >>604 なんだよやっぱりプロジェクトのプロパティでしか出来ないんじゃないかw だから「べき」って、確かにそうかもしれんがその不便さを進歩って言えるんかい、 つってんだよ。
606 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 11:55:40 ] 設定ファイルを直にいじれよ
607 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 12:06:03 ] 多重継承禁止とかもべき論で導入されたわけで
608 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 12:10:29 ] DebugやReleaseの他にもプロジェクト構成を作って切り替えるのが正攻法 逆にいえばそれで足りる用途にしか使ってほしくないんだろう
609 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 12:12:34 ] C++はtemplateを導入した時点で、#includeでマクロがどうこうといった次元からすでに超越してる。 技術的には可能でもC++のtemplateを模倣する言語は現れないだろう。
610 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 12:14:17 ] C++はあと文字列mixinみたいな機能が入れば完全にプリプロセッサと縁が切れるな
611 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 12:17:23 ] >>605 これのことでしょ ttp://msdn.microsoft.com/ja-jp/library/yt3yck0x.aspx 暑いんだからあんまりぎゃーぎゃー喚くなよ
612 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 12:25:45 ] >>609 Dとかどうよ
613 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 12:30:47 ] >>608 それが正攻法だというのは否定してないよ。 構成の切替方法はあれで便利だし。 ただIDEのあのたった一行の入力欄に「全部の定数を定義する必要がある」のは 不便で使いにくいって言ってるだけ。 しかも(当たり前だが)作った構成の数だけ同じことをする必要がある。 そこにミスが入った場合、非常に発見しにくいとも思うんだが。。
614 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 12:38:02 ] あっちこっちのファイルに飛び散るより遥かにましだと思うが
615 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 14:36:11 ] >>605 「できる」みたいに言ってるやつと >>604 は別人だろ。 できる風に書いてるやつは多分よく読んでないだけ。 要するに、お前の書き込みによく読む価値はないと判断されてる。
616 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 14:50:34 ] 実に自分を世界の中心に置く「セカイ系」的発想だね。 俺やアイツの誤読はお前の文章に読む価値がないからだ、ってかw まあ、自分を世界の中心に「俺様中華思想」もいいかもしれんが、 だったら自分の言葉を自分に適用したらどうだろう。 つまりもう少し他人にとって有益な情報を書けよって意味だが。
617 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 14:51:54 ] 黙ってスルーする能力もないのかよ
618 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 14:54:44 ] 能力というのは目的合理的に物事を推進する力のことを言う。 では「スルーする能力」という時の「スルーする」ことの目的ってなんだ? 少なくとも俺にとってはそんなものはない。 むしろ馬鹿は叩いておいた方が場のため本人のため、そして自分自身の精神衛生のため、 と思っての行動なんだけどね。
619 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 14:59:03 ] というか .csproj はただの MSBuild の XML ファイルなんで テキストエディタで開いてゴリゴリ編集できるんだがそういう 基本的な話は知らんのか? VS からならプロジェクトのアンロード → **.csproj の編集。 …ついでに言うと、VS 側の CSharpPackage が変な proj ファ イルでも普通に動くので VsPackage めんどいとき(ビルドとIDE から適当にファイルが見えて編集できればいい)は .csproj 流用 するといいみたいな。
620 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 15:27:10 ] csprojのほうはいいんだが、slnのほうは変なGUIDが付いてるので手でいじれん・・・ どっかに何入れればいいか公開されてるのかな?
621 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 15:36:53 ] 適当でいい
622 名前:デフォルトの名無しさん [2008/08/02(土) 15:58:49 ] ソリューション周りの情報なら VSSDK の msdn.microsoft.com/it-it/library/bb165922.aspx この辺しか知らん。 ・・・が、俺は基本的にいじるのは IDE 上からだなぁ。依存関係とか。
623 名前:デフォルトの名無しさん [2008/08/03(日) 10:39:27 ] XmlSerializerでstaticなクラスをXMLに保存できないですよね? アプリ設定情報をstaticにしてどのクラスからもすぐに楽に参照したいんですけど、 staticクラスにするとXmlSerializerは使えないですよね?
624 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 10:41:21 ] シングルトン
625 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 10:49:08 ] >>623 ・MySettingクラス(仮称)をstaticクラスじゃなくてsingletonにする。 または ・MySettingクラスはstaticのまま、内部の実装としては別のHogeSettingクラスの インスタンスをもちこいつをXMLシルアル化するようにして、外部にはSaveSetting/LoadSetting メソッドを公開する。
626 名前:デフォルトの名無しさん [2008/08/03(日) 11:20:33 ] シングルトンでいきます ありがとうございました!
627 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 11:32:44 ] stringの配列を指定した列挙型の組み合わせに変換したいのですが、 @のところでコンパイルエラーになってしまいます。 どのように実装したらいいんでしょうか・・・ public class ConvertToEnum<T> where T : Enum ←@ { private T _value; public class ConvertToEnum(string[] texts) { foreach (string s in texts) { _value |= Enum.Parse(typeof(T), text, true); } } public T Value { get { return _value; } } } [Flags] public enum TestEnum { AAA = 001, BBB=002, CCC=004 } string[] texts = { "AAA", "BBB", "CCC" }; TestEnum value = ConvertToEnum<TestEnum>(texts).Value; value : 007
628 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 11:45:19 ] コンパイルエラーの内容読むこともできないの? enumとかdelegateとかで制約は無理
629 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 15:00:54 ] staticコンストラクタでif (!typeof(T).IsAssignableFrom(typeof(Enum))) throw new Exception(); でおk でもその例でクラスにする意味がわからない ConvertToEnum<T>(string[] text)でいいよね
630 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 17:51:29 ] >>629 クラスにしたのは元のソースがクラスだからです 必要な部分だけ残したら上の形になりました えーと、Generic制約でEnumを指定できないと、 Aの部分の | 演算子が使えません… foreach (string s in texts) { _value |= Enum.Parse(typeof(T), text, true); ←A } _valueをint型にしてもBの部分でコンパイルエラーです… public T Value { get { return (T)_value; } ←B } 上手な実装の仕方はないでしょうか…
631 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 18:02:54 ] リフレクション
632 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 18:24:52 ] where T : struct, IConvertible としておいて value = default(T); foreach (string s in texts) { value = (T)Enum.ToObject(typeof(T), value.ToInt32(null) | ((T)Enum.Parse(typeof(T), s, true)).ToInt32(null)); }
633 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 18:45:43 ] List<List<int>>型変数に入ってるすべてのintを返すIEnumerable<int>がほしいんだけど、 Linqとか使うと1行で可能?
634 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 18:59:33 ] listlist.SelectMany(list => list);
635 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 19:08:50 ] >>634 ありがd。
636 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 19:30:09 ] |=を使わんでも、文字列をカンマ区切りにして、 Keys k = (Keys)Enum.Parse(typeof(Keys), "Control, Alt, T", true); みたいにすればいい。
637 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 20:49:00 ] >>634 おおそんなのが・・・
638 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 21:19:43 ] >>634 こういうのが頭の中にすんなり入ってこないorz
639 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 21:32:35 ] var array = new[] { new {A="あ", B="いう"}, new { A="え",B="お" } }; var flat = array.SelectMany(x => new[] { x.A, x.B }); Console.WriteLine(string.Concat(flat.ToArray())); こういう例のほうがわかりやすいかな
640 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 21:35:33 ] ラムダ式を華麗に扱えるようになりたい
641 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 21:40:18 ] C#3.0でRayToracingとかのArticleあったけれど、あのソースがラムダ使いこなしたサンプルの一つとみていいもんかね。
642 名前:デフォルトの名無しさん [2008/08/04(月) 21:46:35 ] バイト配列の変換について教えてください。 バイナリファイルよりReadAllBytesでデータをバイト配列に格納後、指定の バイト数分のデータを2進数の文字列に変換するメソッドを作成しています。 8バイトまではBitConverterメソッドで数値変換し、Convert.ToStringで 2進数の文字列に変換できるのですが、9バイト以上はBitConverterメソッドが 対応していません。この場合、何か良い方法があるのでしょうか? よろしくお願いします。
643 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 21:48:22 ] 手抜きするならBitConverter.ToStringとString.Replace
644 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 21:49:07 ] どうでもいいが数値変換したらリトルエンディアンになっちゃうぜ
645 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 22:09:26 ] クリスタルレポートとMicrosoft.Reportingのどっちを使おうか悩む。 普通なら昔からあるものは情報も豊富でバグも枯れてて使いやすい はずだが、クリレポは悪評ばかり・・・
646 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 23:09:18 ] >>638 このケースではクエリ式の方がとっつきやすいかな。 from list in listlist from x in list select x; 慣れてくればSelectManyを思い出せるようになる。かも。 ILではどっちでも同じことなんだけど。
647 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 23:24:50 ] >>638 SelectMany は正直無理だと思う。 そのために、 from listist in listlist from x in list select x みたいな記法がある。 これで listlist.SelectMany(list => list) と同義のはず。
648 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 23:26:01 ] >>641 あれは結構邪道だけどな。 クエリ式が関数型言語っぽい記述できるのをいいことに、 C# 内で関数型言語プログラミングしてるっていう。 クエリ式の目指すところではなくて、副産物的なものだと思う。
649 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 23:56:31 ] Validatorクラスでの正規表現チェックって クラサバでもwebでも使えますか?
650 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 02:19:49 ] >>633 >>634 に便乗して、 List<List<List<int>>> listlistlist; から IEnumerable<int> を得るには、 listlistlist.SelectMany(listlist => listlist).SelectMany(list => list); か、 listlistlist.SelectMany(listlist => listlist.SelectMany(list => list)); みたいな感じでOK? もっと良い書き方があったりするのかな?
651 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 05:45:41 ] >>650 それでOK。
652 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 08:49:25 ] >>650 それでもいいけど、それは関数化すべき気がする。 static IEnumerable<T> Concat<T>(IEnumerable<IEnumerable<T>> listlist) { return listlist.SelectMany(list => list); } を作って、Concat(Concat(listlistlist));