2012-10-01から1ヶ月間の記事一覧

C#

Firstメソッドにはパラメータありとなしがあって、ありを使えばWhere(条件).First-->First(条件)でいける FirstOrDefaultを使えば、存在有無とデータ取得の両方を実現できる。Where()+First()-->FirstOrDefault() SortしてFirstすれば最小値が取れるが、これ…

C#

射影・・・・・Enumerable.Range(1, 9).Select(c=>c*2) 射影*2・・・・Enumerable.Range(1, 9).SelectMany( (l)=>Enumerable.Range(1, 9), (l, r)=> l +"x"+r+"="(l*r)) SkipWhileとWhereの大きな違いは、SkipWhileはスタート位置がスキップされるだけで、そ…

C#

さて、ショートコーディングも読み終えたんで、積ん読より以下を今日からやってみます。【省エネ対応】 C#プログラムの効率的な書き方作者: 川俣晶出版社/メーカー: 技術評論社発売日: 2012/01/19メディア: 単行本(ソフトカバー)購入: 1人 クリック: 9回こ…

C#

読むとやるとでは、大きな違い。いざ書いてみると書けない。 Encoding.GetEncoding("Shift_JIS")も日本ロケールでの読み込み限定とすれば、Encoding.Defaultにできる versionとれ。FileVersionInfo.GetVersionInfo( Assembly.GetExecutingAssembly().Locatio…

C#

もう金曜ですか・・・。 Parallel.For( startIndex, EndIndex, action )による計算はコア数により処理分散される Dictonaryクラスはスレッドセーフではないので、スレッド処理させたいならConcurrentDirectoryクラスを使う ConcurrentDirectoryクラスはスレ…

C#

今日は消えないことを祈りつつ・・・ ディレクトリ内の全ファイルのうち、一つだけ参照するならDirectory.EnumerateFiles( path ).First()・・・パフォーマンスたかす 同じことはディレクトリでも言えるけど、そんなサブフォルダ数の多いフォルダも少ないDir…

C#

消えてもた・・・ もう一回書くのって凹む。 あー凹む。やっぱ[確認する]押す前にクリップボードいれとかなあかんね。 stringで"123456"とか入れてるやつを、foreach( var s in strHoge )でとれたりする FilePathを組み立てる際、"\"を走査するくらいなら、P…

C#

string変数にモノが入っている状況でnullとか空とかチェックする場合、string.IsNullOrWhiteSpace(str)で一発で済ます 上記にてwhiteSpaceはオKな場合はstring.IsNullOrEmpty(str)で済ます Splitしたいとき、デミリタ指定の次のパラメータでStringSplitOptio…

C#

さて本日もまいりますよwww LINQ中の列挙からToDictonary()でDictonary型のインスタンスを作成できる。 2つの配列夫々に対して加算とかの処理したい場合、配列1.Zip(配列2, (x,y)=>x+y)とかできる args[]はEnviroment.GetCommandLineArgs().Skip(1)で列挙 Di…

C#

さて本日も勉強は続く。 配列の要素毎でのループ処理をしたい場合、特定のループ回数をスキップしたければs.SkipWhile((x,i)=>i==n) 数値配列の合計とかもループでゴリゴリ加算せず、int[] x = {1, 2, 3}; x.sum();でスッキリ(条件いるならWhile(...).Sum())…

DateTimeをうまく使うと楽できる。tick相当で考えて処理しない。例えば・・・

C#

TimeSpanがあるなら、Total系のプロパティ(TotalDaysとか)で見る 今月末の日付が知りたいなら、今日の月初をまず求め、AddMonth(1).AddDays(-1)する int[] arのような配列の再配列は、 ar = ar.Where((x)=>(x>0)).ToArray () で解決 Dictionary型とかでkeyが…