私はリストを持っています
List<string> listOfAtt = new List<string>();
など_ listOfAtt[0] = "FirsName"
_listOfAtt[1] = "Homer"
Dictionary<srting,string>
この種のを作成するにはどうすればよいですか
listOfAtt["FirsName"] = "Homer"
???
listOfAtt.Count
が偶数であり、偶数インデックスのアイテムが一意であると仮定すると、以下で実行できます。
Dictionary<string,string> dic = new Dictionary<string,string>();
for (int i = 0; i < listOfAtt.Count; i+=2) {
dic.Add(listOfAtt[i], listOfAtt[i + 1]);
}
キーの一意性を仮定すると、それを行う LINQ-y の方法は次のようになります。
Enumerable.Range(0, listOfAtt.Count / 2)
.ToDictionary(x => listOfAtt[2 * x], x => listOfAtt[2 * x + 1]);
物事がそれほどユニークでない場合は、このロジックを拡張して、キーでグループ化し、次のDictionary<string, List<string>>
ようなものを返すことができます。
Enumerable.Range(0, listOfAtt.Count / 2)
.Select(i => new { Key = listOfAtt[2 * i], Value = listOfAtt[2*i+1] })
.GroupBy(x => x.Key)
.ToDictionary(x => x.Key, x => x.Select(X => X.Value).ToList());
これを行う最善の方法は、おそらく for ループを使用することです
Dictionary<string,string> dict = new Dictionary<string,string>();
for (int i = 0; i < listOfAtt.Count; i+=2){
dict.Add(listOfAtt[i], listOfAtt[i+1]);
}