C#の『ToDictionary』の使い方が分からない…教えてください!
C#を学んでいるけど…
「ToDictionaryの使い方が分からない」
このような疑問を持っていませんか?
この記事では、LINQのひとつである『ToDictionary』について現役エンジニアが分かりやすく解説します。
まだ、C#の開発環境構築が出来ていない方はこちらを参考にしてください。
ToDictionaryの使い方
ToDictionaryの使い方を解説する前に、ToDictionaryで何が出来るのかを把握しておきましょう。
ToDictionary = リストを辞書型に変換
このような考え方で問題ありません。ToDictionaryを使用すると指定したリストを辞書型に変換して出力することが出来ます。
それでは、実際のコードを用いながらToDictionaryの使い方を解説していきます。
まずは、ToDictionaryの使い方から説明します。ToDictionaryを使うときには以下のように記述します。
リスト.ToDictionary(Key, Value)
実際のコードを用いながらToDictionaryの使い方を解説していきます。
ToDictionaryを使ってシーケンスを出力するときには以下のように記述します。
using System;
using System.Collections.Generic;
using System.Linq;
namespace sample
{
class LinqToDictionary
{
private class OnePiece
{
public int Id { get; set; }
public string Name { get; set; }
public string Belong { get; set; }
}
static public void BlogLinqToDictionary()
{
// リストを宣言・初期化
List<OnePiece> onePiecesList = new List<OnePiece>
{
new OnePiece { Id = 0, Name = "モンキー・D・ルフィ" },
new OnePiece { Id = 1, Name = "ロロノア・ゾロ" },
new OnePiece { Id = 2, Name = "ナミ" },
new OnePiece { Id = 3, Name = "ウソップ" },
new OnePiece { Id = 4, Name = "ヴィンスモーク・サンジ" },
new OnePiece { Id = 5, Name = "トニートニー・チョッパー" },
new OnePiece { Id = 6, Name = "ニコ・ロビン" },
new OnePiece { Id = 7, Name = "フランキー" },
new OnePiece { Id = 8, Name = "ブルック" },
new OnePiece { Id = 9, Name = "ジンベエ" },
};
// リストを辞書型に変換
Dictionary<int, String> onePiecesDictionary = onePiecesList.ToDictionary(x => x.Id, x => x.Name);
// ToDictionaryの実行結果を出力
for (int i = 0; i < onePiecesDictionary.Count; i++)
{
Console.WriteLine($"{i}番目:{onePiecesDictionary[i]}");
}
}
}
}
サンプルコードを実行した際の出力結果は、以下のようになります。
0番目:モンキー・D・ルフィ
1番目:ロロノア・ゾロ
2番目:ナミ
3番目:ウソップ
4番目:ヴィンスモーク・サンジ
5番目:トニートニー・チョッパー
6番目:ニコ・ロビン
7番目:フランキー
8番目:ブルック
9番目:ジンベエ
実行結果から分かるように、リストを辞書型として変換し、KeyとValueで値を取得することが出来ています。
リスト.ToDictionary(Key, Value)
これを基にサンプルコードを解説すると、「リスト = onePiecesList」となります。
つまり、リスト(onePiecesList)にToDictionaryを適用し、リストを辞書型(onePiecesDictionary)に変換した結果をを出力(Console.WriteLine)するということです。
このようにして、C#では