いろいろ備忘録日記

主に .NET とか Java とか Python絡みのメモを公開しています。最近Go言語勉強中。

Linq

Linq入門記-61 (LINQ to XML, 要素のクローンとアタッチ)

LINQ to XMLにて新たにツリーに追加された要素の特徴 (クローンとアタッチ) について. 過去の内容は以下から見れます。よろしければご参照くださいませ。 Linq入門記 https://sites.google.com/site/gsfzero1/#TOC-Linq- LINQ to XMLでは、新たに要素を作成…

Linq入門記-60 (LINQ to XML, 要素の取得, Elements)

LINQ to XMLにてクエリを利用して特定の要素を取得するサンプル. 過去の内容は以下から見れます。よろしければご参照くださいませ。 Linq入門記 https://sites.google.com/site/gsfzero1/#TOC-Linq- LINQ to XMLでは、LINQ to Objectsと同様にクエリを使用し…

Linq入門記-59 (LINQ to XML, XMLの出力, XMLファイルの作成, Save)

今回は、LINQ to XMLにてXMLの作成について。 過去の内容は以下から見れます。よろしければご参照くださいませ。 Linq入門記 https://sites.google.com/site/gsfzero1/#TOC-Linq- 要素を構築して、ファイルに出力するにはXDocumentかXElementの Saveメソッド…

Linq入門記-58 (LINQ to XML, XmlException, エラー時に発生する例外)

今回は、LINQ to XMLにてエラーが発生した場合にthrowされる例外について. 過去の内容は以下から見れます。よろしければご参照くださいませ。 Linq入門記 https://sites.google.com/site/gsfzero1/#TOC-Linq- LINQ to XMLは内部でXmlReaderを利用しているの…

Linq入門記-57 (LINQ to XML, XElement, Load, ストリームを指定して読み込み)

今回は、ストリームを指定して読み込みを行うXElement.Loadメソッドについてメモ。 過去の内容は以下から見れます。よろしければご参照くださいませ。 Linq入門記 https://sites.google.com/site/gsfzero1/#TOC-Linq- 文字列以外の方法で、読み込みを行う場…

Linq入門記-56 (LINQ to XML, XDocument, XElement, Load, URIを指定して読み込み)

今回は、URIを指定して読み込みを行うLoadメソッドについてメモ。 過去の内容は以下から見れます。よろしければご参照くださいませ。 Linq入門記 https://sites.google.com/site/gsfzero1/#TOC-Linq- サンプルコードは、まとめてCodePlexにアップしてます。 …

Linq入門記-55 (LINQ to XML, XDocument, XElement.ctor, 関数型構築)

今回は、LINQ to XMLの特徴の一つであるである関数型構築についてメモ。 以前の内容は以下から見れます。よろしければご参照くださいませ。 Linq入門記 https://sites.google.com/site/gsfzero1/#TOC-Linq- サンプルコードは、まとめてCodePlexにアップして…

Linq入門記-54 (LINQ to XML, XDocument, Parse, 文字列から構築)

すごく久しぶりのLinq入門記です。 今回から、LINQ to XMLについてメモしていこうと思ってます。 以前の内容は以下から見れます。よろしければご参照くださいませ。 Linq入門記 https://sites.google.com/site/gsfzero1/#TOC-Linq- サンプルコードは、まとめ…

Linq入門記-53 (補足, .NET 4.0で追加された遅延評価されるメソッド, System.IO.File.ReadLines)

今回も、ちょっとした補足事項です。 .NET 4.0になり、今まで存在していたメソッドの遅延評価版が追加されたクラスが いくつかあります。そのうちの一つが System.IO.File クラスで、以下のメソッドが追加されています。 ReadLines 上記のメソッドは、従来か…

Linq入門記-52 (補足, .NET 4.0で追加された遅延評価されるメソッド, EnumerateFiles, EnumerateDirectories, EnumerateFileSystemEntries)

今回は、ちょっとした補足事項です。 .NET 4.0になり、今まで存在していたメソッドの遅延評価版が追加されたクラスが いくつかあります。そのうちの一つが System.IO.Directory クラスで、以下のメソッドが追加されています。 EnumerateFiles EnumerateDirec…

Linq入門記-44 (LINQ To Object, Empty)

今回は、Emptyメソッドについてです。 Emptyメソッドは、文字通り空のシーケンスを返します。 メソッドの戻り値に使ったり、UnionやAggregateを行う際の中間値として よく利用したりします。 書式は以下の通り。 public static IEnumerable<TResult> Empty<TResult>() 以下、サ</tresult></tresult>…

Linq入門記-45 (LINQ To Object, Contains)

今回は、Containsメソッドについてです。 Containsメソッドは、指定された要素がシーケンス内に存在するか否かを返します。 List.Containsなどと同じですね。 書式は以下の通り。 public static bool Contains<TSource>( this IEnumerable<TSource> source, TSource value ) pu</tsource></tsource>…

Linq入門記-46 (LINQ To Object, Take, TakeWhile)

今回は、Take拡張メソッドとTakeWhile拡張メソッドについてです。 Take拡張メソッドは、指定された件数分シーケンスから要素を返します。 TakeWhile拡張メソッドは、指定された条件が満たされる間要素を返します。 Take拡張メソッドは、よくトップNを抽出す…

Linq入門記-47 (LINQ To Object, Skip, SkipWhile)

今回は、Skip拡張メソッドとSkipWhile拡張メソッドについてです。 TakeとTakeWhileが先頭から指定された分要素を返すのに対して、 こちらは指定された分要素をスキップしてくれます。 Skip拡張メソッドは、指定された件数分シーケンスの要素をスキップします…

Linq入門記-48 (LINQ To Object, First, Last, Single)

今回は、First拡張メソッドとLast拡張メソッド、それとSingle拡張メソッドについてです。 それぞれ、シーケンスの中から特定の一つを抽出してくれるメソッドです。 Firstは、最初の要素を返してくれます。 Lastは、最後の要素を返してくれます。 Singleは、F…

Linq入門記-49 (LINQ To Object, FirstOrDefault, LastOrDefault, SingleOrDefault, DefaultIfEmpty)

今回は、以下のメソッドについてです。 FirstOrDefault拡張メソッド LastOrDefault拡張メソッド SingleOrDefault拡張メソッド DefaultIfEmpty拡張メソッド DefaultIfEmpty拡張メソッド以外は、前回記述した First拡張メソッド Last拡張メソッド Single拡張メ…

Linq入門記-50 (LINQ To Object, ElementAt, ElementAtOrDefault)

今回は、ElementAt拡張メソッドとElementAtOrDefault拡張メソッドについてです。 どちらも、前回と前々回に記述したFirst,FirstOrDefault拡張メソッドなどと同じ動きをします。 ElementAtは指定されたインデックス位置の要素を返します。 ElementAtOrDefault…

Linq入門記-51 (LINQ To Object, SequenceEqual)

今回は、SequenceEqual拡張メソッドについてです。SequenceEqualは2つのシーケンスが等しいか否かを判別してくれます。 通常、シーケンス同士の比較というのはループで回して全部同じか否かを 確認するのが定石でしたが、これのおかげで一発でかけるようにな…

Linq入門記-41 (LINQ To Object, Range, Repeat)

今回は、RangeとRepeatメソッドについてです。 でも、実はこの2つのメソッドって書く事ありませんw 文字通りの動きをしてくれます。てことで、そのままサンプルへ。 書式は以下の通り。 public static IEnumerable<int> Range( int start, int count ) public st</int>…

Linq入門記-42 (LINQ To Object, Any)

今回は、Any拡張メソッドについてです。 Any拡張メソッドは、一つでも条件に合致するものが存在するか否かを判別するメソッドです。 量指定子演算子と呼ばれます。(他にも、All, Containsが存在します。) 特定の条件に合致する要素がシーケンス内に存在す…

Linq入門記-43 (LINQ To Object, All)

今回は、All拡張メソッドについてです。 All拡張メソッドは、シーケンス内の全ての要素が条件に合致しているか否かを確認するメソッドです。 量指定子演算子と呼ばれます。(他にも、Any, Containsが存在します。) シーケンス内の要素全てが、特定の条件に…

Linq入門記-40 (LINQ To Object, Aggregate)

今回は、Aggregate拡張メソッドについてです。 Aggregate拡張メソッドは、各集計用拡張メソッド(Sum, Min, Maxなど)の親みたいな感じです。 この拡張メソッドは、特定の目的の為に存在する集計関数ではなく、独自の集計処理を作成する際に利用します。 Pyt…

Linq入門記-39 (LINQ To Object, Zip, 4.0で追加されたメソッド)

今回は、Zip拡張メソッドについてです。 この拡張メソッドは、.NET 4.0で追加されました。 Zip拡張メソッドは、簡単に言うと、2つのシーケンスを同時にループしてくれる拡張メソッドです。 Pythonのzip関数と同じです。 これを利用すると、複数のシーケンス…

Linq入門記-37 (LINQ To Object, Min, Max)

今回は、Min, Max拡張メソッドについてです。 Min, Max拡張メソッドは、文字通り最小値、最大値を返します。 Min, Max拡張メソッドには、非常に多くのオーバーロードが存在します。 ここでは、int32の分のみ記述します。 (decimal, int, long, single毎に引…

Linq入門記-38 (LINQ To Object, Average)

今回は、Average拡張メソッドについてです。 Average拡張メソッドは、文字通り平均値を返します。 Average拡張メソッドには、非常に多くのオーバーロードが存在します。 ここでは、int32の分のみ記述します。 (decimal, int, long, single毎に引数無しと引…

Linq入門記-36 (LINQ To Object, Sum)

今回は、Sum拡張メソッドについてです。 Sum拡張メソッドは、文字通り合計を返します。 Sum拡張メソッドには、非常に多くのオーバーロードが存在します。 ここでは、int32の分のみ記述します。 (decimal, int, long, single毎に引数無しと引数有りのパター…

Linq入門記-35 (LINQ To Object, Count, LongCount)

今回は、Count(LongCount)拡張メソッドについてです。 Count拡張メソッドは、文字通り件数を返します。 Count拡張メソッドの書式は以下の通りです。 public static int Count<TSource>( this IEnumerable<TSource> source ) public static int Count<TSource>( this IEnumerable<TSource> source,</tsource></tsource></tsource></tsource>…

Linq入門記-33 (LINQ To Object, Intersect)

今回は、Intersect拡張メソッドについてです。 Intersect拡張メソッドは、積集合を生成します。 つまり、2つのシーケンスのどちらにも含まれている要素のみが抽出されます。 SQLでのINTERSECTと同じです。 ちなみに、Union拡張メソッドは和集合、Except拡張…

Linq入門記-34 (LINQ To Object, Except)

今回は、Except拡張メソッドについてです。 Except拡張メソッドは、差集合を生成します。 つまり、2つのシーケンスの内、片方だけに存在している要素のみが抽出されます。 OracleでいうMINUS, SQLServerでいうEXCEPTと同じです。 ちなみに、Union拡張メソッ…

Linq入門記-32 (LINQ To Object, Union, Concat)

今回は、Union拡張メソッドとConcat拡張メソッドについてです。 Union拡張メソッドは、SQLでのUNIONと同じです。2つのシーケンスを結合して、且つ、重複を除外します。 SQLでのUNION ALLを行うには、Concat拡張メソッドを利用します。Concat拡張メソッドは…