我正在尝试将文本文件读取到ArrayList中。如果我在这行中包括:";CCD_ 1";,然后我得到了非通用错误,但如果我删除它,那么我会在返回行上得到这个错误:
无法隐式转换类型"System.Collections.ArrayList">
using System.Collections;
using System;
using System.IO;
namespace mhpreader
{
internal class NewBaseType
{
public ArrayList messages = new ArrayList();
internal NewMhpReader ReadMessages()
{
{
throw new NotImplementedException();
}
}
}
internal class NewMhpReader : NewBaseType
{
private string _FilePath;
public NewMhpReader(string FilePath)
{
this._FilePath = FilePath;
}
private string line;
public NewMhpReader[] ReadMessages(string nMessages)
{
ArrayList<String> messages = new ArrayList();
//List<TextReader> messages = new List<string>;
using (StreamReader stre = new StreamReader(_FilePath))
{
while ((line = stre.ReadLine()) != null)
{
messages.Add(line);
Console.WriteLine(messages);
}
}
return messages;
}
}
}
有几件事可以帮你一点忙:
-
我会按照其他人的建议删除ArrayList,并用List替换它
-
您的列表文本阅读器需要是列表字符串
-
将您的Console.WriteLine(messages(更改为Console.WriteLine(line(
-
请确保在using中包含Generics命名空间(对于List<>(。
-
请确保返回正确类型的列表字符串。这就是导致您所看到的编译器错误的原因。
public List<string> ReadMessages(string nMessages) { List<string> messages = new List<string>; using (StreamReader stre = new StreamReader(_FilePath)) { while ((line = stre.ReadLine()) != null) { messages.Add(line); Console.WriteLine(line); } } return messages; }