[C#]Linqで辞書(Dictionary)の値からキーを取得するには?

C#

どうも、ちょげ(@chogetarou)です。

System.Linqを使って辞書(Dictionary)の値からキーを取得する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

System.Linqを使って辞書(Dictionary)の値からキーを取得するには、FirstOrDefault()を使います。

まず、System.Linqを導入します。

using System.Linq;

次に、辞書からFirstOrDefault()を呼び出し、引数にラムダ式を指定します。

ラムダ式で、「引数.Value == 値」のような条件式を返します。

そして、FirstOrDefault()からKeyプロパティの値を取得します。

T key = dict.FirstOrDefault(item => item.Value == 値).Key;

上記のFirstOrDefault().Keyは、FirstOrDefault()のラムダ式で引数と比較した値のキーを取得します。

使用例

using System;
using System.Linq;
using System.Collections.Generic;
public class Example
{
    public static void Main()
    {
	    Dictionary<string, int> numbers = new Dictionary<string, int>()
	    {
	        { "one", 1 },
	        { "two", 2 },
	        { "three", 3 },
	        { "four", 4 },
	        { "三", 3 },
	        { "five", 5 },
	        { "third", 3 },
	    };
	    
	    string key1 = numbers.FirstOrDefault(item => item.Value == 3).Key;
	    string key2 = numbers.FirstOrDefault(item => item.Value == 5).Key;
	    string key3 = numbers.FirstOrDefault(item => item.Value == 2).Key;
	    
	    Console.WriteLine(key1); //three
	    Console.WriteLine(key2); //five
	    Console.WriteLine(key3); //two
    }
}

コメント

タイトルとURLをコピーしました