私は一般的なリストを持っていますList<String, String> ListName
リストの値を辞書に挿入しようとしていますDictionary<String, int>
場所を調べましたが、辞書の要素をリストに追加しているだけでした。私の要件は反対ですが。toDictionaryを使ってみましたが、うまくいきませんでした。何が悪かったのかわからない。
リストから辞書に値を挿入しようとした人はいますか?
私は一般的なリストを持っていますList<String, String> ListName
リストの値を辞書に挿入しようとしていますDictionary<String, int>
場所を調べましたが、辞書の要素をリストに追加しているだけでした。私の要件は反対ですが。toDictionaryを使ってみましたが、うまくいきませんでした。何が悪かったのかわからない。
リストから辞書に値を挿入しようとした人はいますか?
私は前にList<string[]>
ジェネリックを見たことがないので、あなたが意味していると思いますList<T,WhoAmI>
使用している場合は、関数List<string[]>
を使用できますToDictionary
List<string[]> ListName = new List<string[]>();
ListName.Add(new[] { "Stack", "1" });
ListName.Add(new[] { "Overflow", "2" });
// Select the first string([0]) as the key, and parse the 2nd([1]) as int
Dictionary<string,int> result = ListName.ToDictionary(key => key[0], value => int.Parse(value[1]));
リストである種のカスタムオブジェクトを使用している場合も、同じ方法で行うことができます
List<MyObject<string, string>> ListName = new List<MyObject<string, string>>();
Dictionary<string, int> result = ListName.ToDictionary(key => key.String1, value => int.Parse(value.String2));
public class MyObject<T, U>
{
public MyObject(T string1, U string2)
{
String1 = string1;
String2 = string2;
}
public T String1 { get; set; }
public U String2 { get; set; }
}
注:の周りにエラー チェックを追加するか、数値ではない可能性がある場合はint.Parse
使用する必要があります。Int.TryParse
そのように使用できます:
List<KeyValuePair<String, String>> ListName = new List<KeyValuePair<String, String>>();
Dictionary<String, Int32> dict = new Dictionary<String, Int32>();
ListName.ForEach(e=> dict.Add(e.key, Int32.Parse(e.Value)));
整数がどこから来ているのか正確にはわかりませんが、次のようなものが機能するはずです:
Dictionary<string, int> dict = new Dictionary<string, int>();
list.ForEach(x => dict.Add(x, theInteger));