【问题标题】:Looping issue with Dictionary C#字典 C# 的循环问题
【发布时间】:2013-05-03 14:08:35
【问题描述】:

我正在循环一个字典类型并遇到问题,不明白我做错了什么,在谷歌上做了很多搜索但是:(

//Tour class have dictionary property of type <int, string>
public Dictionary<int, string> listTourCategoriesNames { get; set; }

在前端,我需要遍历该属性并填写 ListOfActivities 列表

public class TourActivitiesDB
    {
        public int ID { get; set; }
        public string Name { get; set; }
    }

this.ListOfActivities = new List<TourActivitiesDB>();
foreach (var item in tourDB.listTourCategoriesNames)
{
    this.ListOfActivities.Add(new TourActivitiesDB { 
       ID = item.Key, //ERROR HERE
       Name = item.Value //ERROR HERE
    });
}

错误是:

'string' 不包含'Key' 的定义,并且找不到接受'string' 类型的第一个参数的扩展方法'Key'(您是否缺少 using 指令或程序集引用?)

“字符串”不包含“值”的定义,并且找不到接受“字符串”类型的第一个参数的扩展方法“值”(您是否缺少 using 指令或程序集引用?)

我还在 foreach 循环中使用了 KeyValuePair 而不是 var 但遇到了同样的问题。谢谢。

附上屏幕截图,您可以在其中看到我在我的字典中使用了正确的类型:

【问题讨论】:

  • 确定它是字典吗?
  • 你能告诉我们 tourDB.listTourCategoriesNames 失败时包含什么吗?
  • 确保您循环的内容正确:在foreach 循环中右键单击tourDB.listTourCategoriesNames,然后“转到定义”。那真的是你的字典吗?
  • @MuhammadAdnanSaleem 很明显,tourDB.listTourCategoriesNameNOT 字典。这是一个List&lt;string&gt;string[] ....
  • 您的 tour.listTourCategoriesName、命名空间或类中的游览是什么?同意@Erno 的建议,清理解决方案并使用标准命名约定重新构建将获得更好的视图?

标签: c# list dictionary foreach key-value


【解决方案1】:

我刚刚测试过,它似乎按照记录的方式工作

Dictionary<int, string> dic = new Dictionary<int, string> { { 1, "one" }, { 2, "two" } };
foreach (KeyValuePair<int, string> kvp in dic)
{
    Debug.WriteLine($"{kvp.Key} {kvp.Value}");
}

【讨论】:

    猜你喜欢
    • 2021-11-07
    • 2013-06-15
    • 2011-09-19
    • 1970-01-01
    • 1970-01-01
    • 2022-08-16
    • 2011-01-25
    • 2014-12-11
    • 2019-03-26
    相关资源
    最近更新 更多