C#では、Dictionaryクラスのコンテンツをどのように出力しますか?
キーと値を含むDictionaryクラスをロードしたら、それらを循環させてforeachループに個々の値を出力するにはどうすればよいですか?
C#では、Dictionaryクラスのコンテンツをどのように出力しますか?
キーと値を含むDictionaryクラスをロードしたら、それらを循環させてforeachループに個々の値を出力するにはどうすればよいですか?
http://www.dotnetperls.com/dictionaryの例を次に示します。
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
// Example Dictionary again
Dictionary<string, int> d = new Dictionary<string, int>()
{
{"cat", 2},
{"dog", 1},
{"llama", 0},
{"iguana", -1}
};
// Loop over pairs with foreach
foreach (KeyValuePair<string, int> pair in d)
{
Console.WriteLine("{0}, {1}",
pair.Key,
pair.Value);
}
// Use var keyword to enumerate dictionary
foreach (var pair in d)
{
Console.WriteLine("{0}, {1}",
pair.Key,
pair.Value);
}
}
}
最後のループでは、 varを使用して KeyValuePair オブジェクトを宣言します。Dictionary で使用される型の宣言について心配する必要がなく、CLR に対して同じ結果を生成するため、この方法の方が簡単です。
foreach (KeyValuePair<string, int> pair in myDictionary)
{
Console.WriteLine("{0}, {1}",
pair.Key,
pair.Value);
}
これを試して
Dictionary<object, object> dummyDictionary = new Dictionary<object, object>
{
{"India","Delhi"},
{"USA","WashingtonDC"},
{"Bangaladesh","Dhaka"},
{"Pakistan","Karachi"}
};
//Foreachループ構造
foreach (KeyValuePair<object, object> kvp in dummyDictionary)
{
Console.WriteLine(string.Format("Key = {0} Value = {1}", kvp.Key, kvp.Value));
}
//LinqおよびForeach拡張メソッドを使用
var result =
(from kvp in dummyDictionary
select new
{
Key = kvp.Key
,
Value = kvp.Value
});
result.ToList().ForEach(kvp => Console.WriteLine(string.Format("Key = {0} Value = {1}", kvp.Key, kvp.Value)));
Console.ReadKey();
foreach(var key in pair.Keys){
Console.WriteLine("{0} - {1}", key, pair[key]);
}
個々の値を出力するとはどういう意味ですか? 一意の値のみが表示されることを期待していますか?
Dictionary<string, string> dict = new Dictionary<string, string>
{
{"1","one"},
{"2","two"},
{"3","three"},
{"4","one"}
};
foreach (var value in dict.Values.Distinct())
{
Console.WriteLine(value);
}
Console.ReadLine();
つまり、Distinct()
一意の値を取得 するために使用できますdict.Values
がValueColection
、辞書の