从List <string>到Dictionary <string,string>

Sas*_*sky 1 .net c#

我有名单

List<string> listOfAtt = new List<string>();
Run Code Online (Sandbox Code Playgroud)

在那里listOfAtt[0] = "FirsName",listOfAtt[1] = "Homer"等等.

我怎样才能创造出Dictionary<srting,string>这种类型

listOfAtt["FirsName"] = "Homer"???

Meh*_*taş 9

假设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]);
}
Run Code Online (Sandbox Code Playgroud)

  • 你做了两次拼写错误,而不是字符串;) (2认同)

lc.*_*lc. 7

假设密钥的唯一性,LINQ-y的方法是:

Enumerable.Range(0, listOfAtt.Count / 2)
          .ToDictionary(x => listOfAtt[2 * x], x => listOfAtt[2 * x + 1]);
Run Code Online (Sandbox Code Playgroud)

如果事情不那么独特,你可以扩展这个逻辑,按键分组并返回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());
Run Code Online (Sandbox Code Playgroud)