ここからは、実際にサンプルコードを書きながらコレクションについて学んでいきます。そのための準備として、まずは本コースを通じて使用するプロジェクトを作成しておきましょう。
図1 プロジェクトの作成
Visual Studioを起動する
まずはVisual Studioを起動します。本書ではVisual Studio 2026を使用しています。以前のバージョンでも手順はほぼ同じですが、後述するフレームワークの選択で「.NET 10.0」を選ぶため、できるだけ新しいバージョンを用意しておくとよいでしょう。
図2 Visual Studio 2026の起動画面
新しいプロジェクトの作成
起動するとスタート画面が表示されます。左側には最近開いたソリューションの一覧が並んでいますが、今回は新しくプロジェクトを作るので、右側にある「新しいプロジェクトの作成」をクリックします。
図3 スタート画面で「新しいプロジェクトの作成」をクリック
テンプレートを選択する
「新しいプロジェクトの作成」画面では、作成するアプリケーションの種類(テンプレート)を選びます。上部の検索欄に「wind」などと入力すると、Windows関連のテンプレートに絞り込めます。
この中から、タグに「C#」と表示されている「Windows フォーム アプリ」を選択します。よく似た名前のテンプレートが並んでいるので注意してください。すぐ下にある同名のテンプレートはVisual Basic用です。また、「Windows フォーム アプリケーション (.NET Framework)」は旧来の.NET Framework向けのテンプレートなので、今回は選びません。
図4 「Windows フォーム アプリ」(C#)を選択
選択したら「次へ」をクリックします。
プロジェクト名と場所を指定する
「新しいプロジェクトを構成します」画面では、プロジェクト名と保存場所を指定します。プロジェクト名はデフォルトの「WinFormsApp1」のままで構いません。場所は任意ですので、ご自身の管理しやすいフォルダーを選んでください。ここではデスクトップにしています。
図5 プロジェクト名と保存場所の指定
設定できたら「次へ」をクリックします。
フレームワークを選択する
「追加情報」画面では、使用するフレームワークを選びます。ここでは「.NET 10.0(長期的なサポート)」を選択します。.NET 10は長期サポート(LTS)版なので、学習用としても安心して使えます。
図6 フレームワークに「.NET 10.0(長期的なサポート)」を選択
「作成」をクリックすると、プロジェクトの作成が始まります。
図7 プロジェクトを作成しています
プロジェクトの完成
しばらくするとプロジェクトが作成され、フォームデザイナーに空のForm1が表示されます。
図8 Form1のデザイナー画面
ソリューション エクスプローラーを開くと、WinFormsApp1プロジェクトの中に「依存関係」「Form1.cs」(Form1.Designer.cs、Form1.resxを含む)「Program.cs」が作られていることが確認できます。
図9 ソリューション エクスプローラーで生成されたファイルを確認
自動生成されたコード(参考)
動画の中ではコードの中身までは開きませんが、テンプレートによってどのようなコードが自動生成されているのかを確認しておきましょう。これから書いていくサンプルコードは、この土台の上に追加していくことになります。
まずはアプリケーションの入り口となるProgram.csです。Mainメソッドの中でApplication.Run(new Form1())が呼ばれており、起動時にForm1が表示される仕組みになっています。
リスト1 Program.cs(自動生成)
namespace WinFormsApp1
{
internal static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
// To customize application configuration such as set high DPI settings or default font,
// see https://aka.ms/applicationconfiguration.
ApplicationConfiguration.Initialize();
Application.Run(new Form1());
}
}
}
次にForm1.csです。現時点ではコンストラクタでInitializeComponent()を呼び出しているだけです。以降のレクチャーでは、このフォームにボタンを配置し、ボタンのクリックイベントの中にコレクションのサンプルコードを書いていきます。
リスト2 Form1.cs(自動生成)
namespace WinFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
}
}
プロジェクトファイル(WinFormsApp1.csproj)も見ておきます。TargetFrameworkがnet10.0-windowsになっており、先ほど選択した.NET 10が使われていることがわかります。また、ImplicitUsingsが有効になっているため、System.Collections.Genericなどのよく使う名前空間は、usingを書かなくても利用できます。List<T>などのコレクションをすぐに使い始められるのはこのためです。
リスト3 WinFormsApp1.csproj(自動生成)
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net10.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<UseWindowsForms>true</UseWindowsForms>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
</Project>
まとめ
本章では、Visual Studio 2026で「Windows フォーム アプリ」(C#)のテンプレートを選び、フレームワークに.NET 10.0を指定してプロジェクトを作成しました。これで準備は完了です。次章からは、このプロジェクトを使ってコレクションのサンプルコードを書いていきます。
■非公開コース「C#14新機能」プレゼント:
非公開コース「C#14新機能」(80分)をご覧になりたい方は
こちらからURLとパスワードを発行していますので、ご覧になってみてください。
非公開コース「C#14新機能」を観る
A01_はじめに
A02_プロジェクトの作成
B01_配列とは
B02_配列の生成とアクセス
B03_生成と同時に値を設定する
B04_型推論による生成
B05_メソッドの引数などにする場合の注意点
B06_Length
B07_IndexOfでの検索
B08_FindIndexでの検索
B09_Find
B10_Exists
B11_FindAllとFindLast
B12_誤ったコピー
B13_Array.Copy
B14_範囲指定のコピー
B15_Resize
C01A_ArrayList
C02_List
C03_List 動的な要素の変更
C04_Listのコンストラクタ
C05_Listのコンストラクタ_Capacity
C06_ListTからArrayクラスのメソッドが呼ばれている
D01_コレクションインタフェースとは
D02_異なるコレクションクラスに互換性を持たせる
D03_インタフェースの階層構造
D04_クライアントができる操作を制限させる
D05_クライアントができる操作を制限させる_後半
D06_Enumerableの拡張メソッドに関して
D07_ReadOnly系のコレクションインタフェース
D08_AsReadOnly
D09_ToListでコピーする
D10_ListTはprivateで使う
■非公開コース「C#14新機能」プレゼント:
非公開コース「C#14新機能」(80分)をご覧になりたい方は
こちらからURLとパスワードを発行していますので、ご覧になってみてください。
非公開コース「C#14新機能」を観る