# リストとテキストを比較

2つのリストを行ごとに比較：両方にある行、片方だけの行、どちらかにある行を見つけたり、マーク付きの行差分を並べて表示したりできます。

https://codeknife.dev/ja/risuto-hikaku/

## できること

2つのリストを行ごとに比較します。集合として：すべての行を1回ずつ（和集合）、両方のリストにある行（積集合）、A のみまたは B のみの行、ちょうど片方にある行。テキストとして：各行を変更なし・削除・追加として示す行差分を、統合表示または左右並べで表示します。

## 使い方

1. **リスト A** と **リスト B** に1行1項目で入力または貼り付けます。テキストファイルはリスト A にドロップできます。
2. 演算を選びます。「その他」で **大文字小文字を区別** をオフにすると `Apple` と `apple` が等しく扱われ、**行の前後の空白を無視** をオンにすると末尾のスペースで行が別扱いになりません。結果は入力したままの行を保ちます。
3. 結果をコピーまたはダウンロードします。**空行を削除** は先に両方のリストの空行を取り除きます。

## 例

リスト A が `a, b, c, d`、リスト B が `b, c` の場合：

**A − B** は `a` と `d`、**A ∩ B** は `b` と `c` になり、**行差分** は `a` と `d` を A から削除されたものとして示します。

## 知っておくと便利なこと

- 集合演算は行の順序を無視し、各行を最初に現れた順に1回ずつ返します。
- 行差分はリストを上から下へ比べるので、移動した行は一方で削除、他方で追加として表示されます。
- 左右並べ表示では、変更された行は同じ行を共有し、相手のない行は片側が空白になります。
- 無視する設定でのみ異なる行は等しいとみなされ、リスト B の形で表示されます。

## 演算の意味は？

A ∪ B はどちらかのリストにあるすべての行を1回ずつ並べます。A ∩ B は両方にある行を残します。A − B は A のみ、B − A は B のみの行を残します。最後の演算は、ちょうど片方のリストにだけある行を残します。どの結果も重複がなく、最初に現れた順序を保ちます。

## よくある質問

### 集合演算と行差分の違いは？

集合演算はリストをコレクションとして比べるので、行の順序は関係ありません。行差分は上から下へのテキストとして比べ、コードレビューのように各行を変更なし・削除・追加として示します。

### 大文字小文字や空白を無視できますか？

はい。「その他」で大文字小文字の区別をオフにし、行の前後の空白の無視をオンにします。その違いだけの行は等しいとみなされ、結果には入力したままの形で残ります。

### このツールはリストをどこかに送信しますか？

いいえ。すべてブラウザ内で行われます。入力した内容が当社のサーバーに送信されることはありません。