C#で2つのリストの共通要素を取得する方法(Intersectメソッドの使い方)
C#では、LINQのIntersect()メソッドを使うことで、2つのリストに共通する要素(積集合)を簡単に取得できます。この記事では、具体的なコード例とともにその使い方を解説します。
1. 2つのリストを用意する
まず、比較対象となる2つのリストを作成します。
List<int> val1 = new List<int> { 25, 30, 40, 60, 80, 95, 110 };
List<int> val2 = new List<int> { 27, 35, 40, 75, 95, 100, 110 };2. Intersect()メソッドで共通要素を取得する
Intersect()メソッドは、System.Linq名前空間に含まれる拡張メソッドです。呼び出し元のコレクションと引数で渡したコレクションの両方に存在する要素のみを返します。
IEnumerable<int> res = val1.AsQueryable().Intersect(val2);
なお、Intersect()は重複を排除した結果を返す点にも注意してください。
サンプルコード
以下は、2つのリストの共通要素を取得してコンソールに出力する完全なサンプルです。
using System;
using System.Collections.Generic;
using System.Linq;
class Demo {
static void Main() {
List<int> val1 = new List<int> { 25, 30, 40, 60, 80, 95, 110 };
List<int> val2 = new List<int> { 27, 35, 40, 75, 95, 100, 110 };
IEnumerable<int> res = val1.AsQueryable().Intersect(val2);
Console.WriteLine("両方のリストに共通する要素...");
foreach (int a in res) {
Console.WriteLine(a);
}
}
}実行結果
両方のリストに共通する要素... 40 95 110
まとめ
Intersect()メソッドを使用すると、2つのコレクションから共通する要素だけを効率的に抽出できます。データの照合やフィルタリング処理などで頻繁に活用される便利なLINQメソッドなので、ぜひ覚えておきましょう。
-
HTMLリストの種類を解説!ul・ol・dlの違いと使い分け方
HTMLリストの3つの種類 HTMLには、用途に応じて使い分けられる3種類のリストがあります。 順序なしリスト <ul> 箇条書き形式のリストです。項目同士に特定の順序関係がなく、デフォルトでは黒丸(ビュレット)が先頭に表示されます。 順序付きリスト <ol> 番号付きのリストです。手順やランキングなど、項目に順序がある場合に使用します。 定義リスト <dl> 用語とその定義(説明文)をセットで表示するためのリストです。用語は<dt>タグ、説明は<dd>タグで記述します。 これらのリストは互いに入れ子(ネスト)にできるほか、CS
-
HTMLリストの基本を徹底解説!ul・ol・dlタグの使い分けと書き方
HTMLリストとは? HTML文書では、情報を見やすく整理するために「リスト」を使用します。HTMLのリストには主に以下の3種類があります。 順序なしリスト(番号なしリスト) 順序ありリスト(番号付きリスト) 記述リスト(定義リスト) それぞれの特徴と書き方を詳しく見ていきましょう。 1. 順序なしリスト(<ul>タグ) 順序なしリストは、<ul>タグで定義します。各リスト項目は<li>タグで囲みます。ブラウザ上では箇条書きとして表示され、項目の先頭に黒丸(ビュレット)が自動的に付きます。順番に意味がない項目を並べる際に最適です。 構文 基本的な構文