2012-08-01 78 views
3

我想要一個數組持有一個結構與兩個元素,以保持一個XML標記名稱和它的值。試圖創建一個數組持有一個結構?

我想有數組這樣工作:

MyArrayStruct[Count].TagName = "Bla Bla"; 
MyArrayStruct[Count].TagValue = "Bla Bla Bla"; 

可能有的請幫助我得到這個工作。


public struct TagContents 
{ 
    String TagName; 
    String TagValue;   
}; 

我有聲明數組的問題結構來有工作像我想,我什麼是工作像註釋掉的代碼。

public void LoadXML() 
{ 
    if (File.Exists("Data.xml")) 
    { 
     //Readin XML 
     XmlDocument xmlDoc = new XmlDocument(); 
     xmlDoc.Load("Data.xml"); 
     XmlNodeList dataNodes = xmlDoc.SelectNodes("//FieldData"); 
     //Count the nodes 
     int Max = 0; 
     foreach (XmlNode node in dataNodes) 
     { 
      Max = Max + 1; 
     } 

     int Count = 0; 
     //TagContents MyXmlPointer = new TagContents(); 
     // MyXmlPointer[] ArrayNode; 
     // ArrayNode = new MyXmlPointer[Max]; 

     foreach (XmlNode node in dataNodes) 
     { 
      // ArrayNode[Count].TagName =node.SelectSingleNode("Have not found what to put here yet but will get there").Name; 
      // ArrayNode[Count].TagValue =node.SelectSingleNode("Have not found what to put here yet but will get there").InnerText;      
     } 
    } 
    else 
    { 
     MessageBox.Show("Could not find file Data.xml"); 
    } 
} 
+2

究竟是不是工作? – waldrumpus 2012-08-01 10:50:11

+0

我的評論部分它是我想要它做的但這不起作用 – Pomster 2012-08-01 10:51:28

回答

4

製作領域public

public class TagContent 
{ 
    public String TagName; 
    public String TagValue; 
}; 

,並使用它,我建議使用泛型(像List<>):

var tags = new List<TagContent>(); 

tags.Add(new TagContent{TagName = "aaa", TagValue = "vvv"}); 

// use it: 
// get value of 'TagName' of item 5: 
var tagname5 = tags[5].TagName; 
+0

非常感謝這麼多:) – Pomster 2012-08-01 10:54:55

+0

結構數組通常比結構的List <>更好,因爲可以直接訪問字段在數組元素中,但不能在List <>元素中直接訪問。 – supercat 2012-08-25 23:58:31

相關問題