【问题标题】:getting error in for each loop每个循环都出错
【发布时间】:2015-06-13 00:50:21
【问题描述】:

我在 c# 中为每个循环使用。在使用 for each 时出现这样的错误

foreach 语句无法对“object”类型的变量进行操作,因为“object”不包含“GetEnumerator”的公共定义

这是我的代码:

foreach (Element e in browserInstance.Span(Find.ByClass("")))
{
    PropertyFeatures += e.OuterText.Trim() + ";";

    if (e.OuterText.Contains("Number of Bedrooms"))
        NoOfBedRooms = Utility.GetNumber(e.OuterText);
    else if (e.OuterText.Contains("Number of Bathrooms"))
        NoOfBathRooms = Utility.GetNumber(e.OuterText);
    else if (e.OuterText.Contains("Floor no. of Property"))
        FloorNoOfProperty = Utility.GetNumber(e.OuterText);
    else if (e.OuterText.Contains("Number of Floors"))
        NumberOfFloors = Utility.GetNumber(e.OuterText);
    else if (e.OuterText.Contains("Number of Lifts"))
        NumberOfLifts = Utility.GetNumber(e.OuterText);
}

【问题讨论】:

  • 我不知道 watin,但您可以尝试 .Span() 的结果方法的属性,例如:browserInstance.Span(Find.ByClass("")).Content / browserInstance.Span(Find.ByClass("")).Children,因为 .Span() 似乎没有返回一个集合。
  • 也许你的意思是使用browserInstance.Spans()(注意复数s
  • 如果我给出 span 的意思。那么它也会显示错误

标签: c# .net foreach watin


【解决方案1】:

在这种情况下,Element 类型应该实现一个接口 IEnumerable 并在该类型内实现 GetEnumerator() 方法。那么这个错误就会消失...

【讨论】:

    【解决方案2】:

    这个错误的原因是browserInstance.Span() 没有返回实现IEnumerable 的类型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-09
      • 2018-04-26
      • 2022-01-13
      • 2015-06-22
      • 2015-06-01
      • 2016-11-08
      • 2019-06-08
      • 1970-01-01
      相关资源
      最近更新 更多