カテゴリ: C# 更新日: 2025/10/09

C#のLINQ to ObjectsとLINQ to SQLの違いを理解しよう!初心者向け解説

C#のLINQ to ObjectsとLINQ to SQLの違いを理解しよう
C#のLINQ to ObjectsとLINQ to SQLの違いを理解しよう

先生と生徒の会話形式で理解しよう

生徒

「先生、C#のLINQって色々種類があるみたいですけど、LINQ to ObjectsとLINQ to SQLって何が違うんですか?」

先生

「良いところに気がつきましたね。C#のLINQにはいくつかの使い方があって、その中でもLINQ to ObjectsとLINQ to SQLは代表的なものです。」

生徒

「同じLINQなのに2つに分かれているのはどうしてですか?」

先生

「それは、操作する対象が違うからです。ひとつはC#プログラム内のデータを扱うため、もうひとつはデータベースを扱うために使います。」

1. LINQとは?

1. LINQとは?
1. LINQとは?

C#のLINQ(Language Integrated Query)は、「データに対して検索や並べ替えなどの処理をする仕組み」です。SQLのような書き方をC#の中でそのまま使えるので、リストや配列の検索、データベースからのデータ取得などを直感的に書けるのが特徴です。

LINQを使うと、for文やforeach文を自分で書かなくても、短いコードで効率よくデータを操作できるようになります。

2. LINQ to Objectsとは?

2. LINQ to Objectsとは?
2. LINQ to Objectsとは?

LINQ to Objectsは、C#のプログラム内で扱う配列やリストなどのコレクションを操作する方法です。コレクションとは、データをまとめて管理する箱のようなものです。例えば、数字を10個入れたり、文字列をまとめたりすることができます。

つまり、LINQ to Objectsは、パソコンのメモリ上にあるデータを対象に検索や並べ替えをする機能なのです。


using System;
using System.Linq;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        List<int> numbers = new List<int> { 1, 5, 8, 12, 20, 25 };

        var evenNumbers = numbers.Where(n => n % 2 == 0);

        foreach (var num in evenNumbers)
        {
            Console.WriteLine(num);
        }
    }
}

8
12
20

この例では、リストの中から偶数だけを取り出しています。これがLINQ to Objectsの基本的な使い方です。

3. LINQ to SQLとは?

3. LINQ to SQLとは?
3. LINQ to SQLとは?

LINQ to SQLは、C#のプログラムからデータベースにアクセスして、データを操作する方法です。データベースは、大量のデータを保存して管理する仕組みで、会社の顧客情報や商品の在庫情報などがここに保存されます。

普通はSQLという言語でデータベースに問い合わせをしますが、LINQ to SQLを使うと、C#のコードの中で直接データベースを操作できるのです。


using System;
using System.Linq;
using System.Data.Linq;

public class Customer
{
    public int Id;
    public string Name;
    public string City;
}

class Program
{
    static void Main()
    {
        DataContext db = new DataContext("接続文字列を書きます");

        Table<Customer> customers = db.GetTable<Customer>();

        var tokyoCustomers = from c in customers
                             where c.City == "Tokyo"
                             select c;

        foreach (var customer in tokyoCustomers)
        {
            Console.WriteLine(customer.Name);
        }
    }
}

山田太郎
佐藤花子

この例では、データベースに保存された顧客情報から「東京に住んでいる人」だけを取り出しています。プログラムの中でSQL文を書かずに、C#のLINQ構文だけで操作できるのが大きな特徴です。

4. LINQ to ObjectsとLINQ to SQLの違い

4. LINQ to ObjectsとLINQ to SQLの違い
4. LINQ to ObjectsとLINQ to SQLの違い

ここまでの説明をまとめると、次のような違いがあります。

  • LINQ to Objects:配列やリストなど、C#プログラムの中にあるデータを操作する。
  • LINQ to SQL:データベースに保存されているデータを操作する。

イメージとしては、LINQ to Objectsは「机の上に置いたメモ帳の中から必要な情報を探す」、LINQ to SQLは「図書館に保管された本棚の中から探す」と考えると分かりやすいでしょう。

5. 初心者が意識すべきポイント

5. 初心者が意識すべきポイント
5. 初心者が意識すべきポイント

初心者の方はまずLINQ to Objectsから練習するのがおすすめです。なぜなら、データベースを用意しなくてもリストや配列を使って簡単に試せるからです。

LINQ to SQLはデータベースの知識も必要になりますが、学べば企業システムやWebアプリ開発で役立つ強力な技術です。両方を理解して使い分けられるようになると、C#プログラマーとして大きな力になります。

カテゴリの一覧へ
新着記事
C#で複数ファイルをまとめて操作する方法(foreach・LINQ)をやさしく解説!
C#のインターフェースとは?クラス設計を柔軟にする基本技術
C#のコンストラクタの役割と使い方!オブジェクト初期化の基本
COBOLでデータベース接続を理解しよう!初心者でもわかる基本の考え方
人気記事
No.1
Java&Spring記事人気No1
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.2
Java&Spring記事人気No2
C#で型を調べる方法!GetType()・typeof演算子の違いと使い方
No.3
Java&Spring記事人気No3
C#の数値型をマスターしよう!int・double・decimalの違いと使い方
No.4
Java&Spring記事人気No4
COBOLのCOPY句の使い方を完全ガイド!初心者でもわかる共通部品の再利用方法