2013-05-07 160 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

相关问题