2013-05-07 127 views
4

這可能是一個非常容易和愚蠢的問題給你,但我還沒有弄明白: 我試圖讀取一個長文件與不同的數據通道(或來源) 。每個通道都有幾個字段,例如名稱,編號,日期,數據類型和數據。 我在編程方面很新穎,所以我的第一種方法(也許是錯誤的)是創建一個名爲「Channel」的類,然後當我讀取文件時(使用StreamReader),我創建了類Channel的新對象爲每個頻道。將有不明數量的頻道,我的問題是,我不知道如何後來調用這些數據。如何從一個類調用變量

public class Channel 
{ 
    public string name; 
    public int number= 0; 
    //more labels 
    //data... 
} 
在我的代碼

我寫了這樣的事情(閱讀循環內),每一個新的渠道:

... 
line=file.ReadLine() 
myChannel Channel = new Channel(); 
myChannel.name=line.Substring(10,20) 
myChannel.number=line.Substring(20,30) 
... 

我的問題是我怎麼能稱之爲後(存儲在列表中的每個數據渠道)?我應該爲每個創建的對象賦予不同的名稱嗎?

我試過谷歌它,但我無法找到這個確切的問題。謝謝。

+1

我想指出'number'是一個'int',所以'line.Substring(20,30)'不能分配,OTOH你m發出3';',所以代碼無法編譯。另外,你不會*調用*變量,你*訪問*變量,它不應該*更多的標籤*,而是*更多的聲明*。 *標籤*在C#中完全不同。 – 2013-05-07 12:25:46

+0

對不起,上面的代碼只是爲了說明我的程序結構。我不用英文編程,因此我不知道C#中每個方面的正確名稱,但我正在嘗試,並且非常感謝。 – Sturm 2013-05-07 12:42:37

回答

8

如上所述,您可以在Channel對象中有List這意味着您可以稍後參考它們。

類似的信息(聲明此外面你的循環的):

List<Channel> channels = new List<Channel>(); 

然後在你的循環,你可以這樣做:

myChannel Channel = new Channel(); 
myChannel.name=line.Substring(10,20); 
myChannel.number=line.Substring(20,30); 

channels.Add(myChannel); //This is where we add it to the list 
+1

先生,我愛你 – Sturm 2013-05-07 12:24:15

+3

相當於在StackOverflow上親吻和擁抱,標誌着答案被接受。 – 2013-05-07 12:26:43

+0

說@ThorstenDittmar – 2013-05-07 12:43:20

2

而且也很好的注意:

channels.Count; // gives you how many myChannel is in the list 

Console.WriteLine("Name is: " + channels[0].name); // your data back 
+0

謝謝,我做了一個類似的事情,通過使用「foreach(頻道渠道abc){...}」 – Sturm 2013-05-07 12:50:22

相關問題