我之前没有做过自定义类,因此这可能无法实现,我想阅读一些文本文件并存储有关它们的某些信息,以在整个程序中使用。
class text
{
public int IDnum { get; set; }
public string file { get; set; }
public int lineNum { get; set; }
public string FileText { get; set; }
public string lineType { get; set; }
}
List<text> listOne = new List<text>();
internal void ReadFile()
{
try
{
int IDtype = 0;
foreach (string x in resultFiles)
{
using (StreamReader sr = new StreamReader(x))
{
string s;//text line
int LINECOUNT = 0;
string type = "not defined";
while ((s = sr.ReadLine()) != null)// this reads the line
{
if(s.Contains("COMPUTERNAME="))
{
type = "PC Name";
}
if (s.Contains("Original Install Date: "))
{
type = "Original Install Date";
}
if (LINECOUNT==2)
{
type = "other Date";
}
if (s.Contains("DisplayName\"="))
{
type = "Add/Remove Programs";
}
text text1 = new text { IDnum = IDtype, lineNum=LINECOUNT, file=x, FileText=s, lineType=type};
LINECOUNT++;
IDtype++;
listOne.Add(text1);
}
sr.Close();
}
}
foreach(var x in listOne)
{
MessageBox.Show(x.ToString());
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
但是,当我尝试读取列表时,它只是返回相同的值“ program.name of class.text”
我从来没有建立过自定义类,没有人可以指向我可以在其中学习更多示例的网站吗?
在此先感谢您的任何建议:)
最佳答案
x.ToString()
不起作用,因为它是类的一种类型,而不是字符串。
您可以访问项目的属性
foreach (var x in listOne)
{
MessageBox.Show(x.file + " " + x.FileText);
}
或覆盖类中的
ToString()
方法-然后可以使用x.ToString()
class text
{
public int IDnum { get; set; }
public string file { get; set; }
public int lineNum { get; set; }
public string FileText { get; set; }
public string lineType { get; set; }
public override string ToString()
{
return string.Format("{0}, {1}", this.file, this.FileText);
}
}