2015-02-06 176 views
0

我已經實現了一個自定義鏈表,並且我在實現IEnumerator <>時遇到了問題。具體來說,編譯器告訴我The name "GetEnumerator" does not exist in the current context。我覺得我正在實現它,正是我在許多計算器上發佈的帖子和教程中看到的,我錯過了什麼?在這種情況下GetEnumerator不存在

這裏是我的數據結構:

namespace TestReportCreator_v3 
{ 
    public class FindingsTable : IEnumerable<string> 
    { 
     private Node head, mark; 
     public class Node 
     { 
      public string description; //covers weakness, retinaDesc, nessusDesc 
      public string riskLevel; //covers impactLevel, retinaRisk, nessusRisk 
      public string boxName; //box name results apply to 
      public string scanner; //wassp, secscn, retina, nessus 
      public string controlNumber; //ia control number impacted, wassp and secscn only 
      public string fixAction; //comments, retinaFix, nessusSolu 
      public string auditID; //nessus plugin, retina AuditID, wassp/secscn test number 
      public Node next; 
      public Node(string auditID, string riskLevel, string boxName, string scanner, string controlNumber, string fixAction, string description, Node next) 
      { 
       this.description = description; 
       this.riskLevel = riskLevel; 
       this.boxName = boxName; 
       this.scanner = scanner; 
       this.controlNumber = controlNumber; 
       this.fixAction = fixAction; 
       this.auditID = auditID; 
       this.next = next; 
      } 
     } 

    ...insert, delete, update, save methods... 

     public IEnumerator<string> IEnumerable<string>.GetEnumerator() 
     { 
      var node = mark; 

      while (node != null) 
      { 
       yield return node.riskLevel; 
       node = node.next; 
      } 
     } 

     System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() 
     { 
      return GetEnumerator(); 
     } 
    } 
} 
+3

邊注:很奇怪,編譯器並沒有抱怨'public'中顯式接口實現的面前:'公衆的IEnumerator 的IEnumerable .GetEnumerator()' – 2015-02-06 16:14:12

+0

增加從下面的答案的信息後,沒有尖叫約公衆。好決定。謝謝。 – Chris 2015-02-06 17:06:40

回答