LINQを使用し、ソースコードの可読性を高める
こんにちは。福岡事務所の荒平です。 今回はソースコードの可読性を高める方法について説明していきたいと思います。 例えばC#で二つのDataTableを比べ、片方のTableにだけ存在するデータを取得したい、 というとき、皆さんはどのようにして処理を書きますか? ------------------------------------------------------- TableA TableB 果物 在庫数 果物 在庫数 リンゴ 100 リンゴ 130 ミカン 120 バナナ 120 バナナ 140 ブドウ 150 ブドウ 150 このTableAとTableBを比べ、TableAにしか存在しない果物(ミカン)のデータのみを取得したい ------------------------------------------------------- いくつか方法はありますが、このように考えた方もいるのではないのでしょうか? ・for文やforeach文などを二重にループさせ、 if文などで果物が両方に存在するかどうかを判定する しかし、この方法だと以下のようなデメリットがあります。 1. ネスト構造になるため、他の人が見た場合、可読性が低くなる 2. if文が必要になったり、あらかじめTableのレコードの並び順が決まっていないといけないなど、余計なコードが増えたり、前提条件が必要になる そこで、こういった問題を解決するために最近のC#ではLINQを使用します。 ちなみにLINQとはLanguage INtegrated Query(統合言語クエリ)の略で、 データの集合から特定のデータのみを取得したり、検索や集計などをしてくれる機能です。 ということでさっそくLINQを使用してみましょう。 ------------------------------------------------------- var Record = (from rowA in TableA.AsEnumerable() where !((from rowB in Tab...