以下代码不想编译.我收到一条错误消息:
'System.Collections.Generic.List.Add(string [])的最佳重载方法匹配有一些无效的参数
但我看不出有什么问题.有什么建议?
public static List<string[]> ReadFromDelimitedFile (string Path)
{
int i=0;
List<string[]> AllContracts = new List<string[]>();
using (TextFieldParser parser = new TextFieldParser(Path))
{
parser.Delimiters = new string[] { "\t" };
while (true)
{
AllContracts.Add(i)= parser.ReadFields();
if (AllContracts.Add(i) == null)
{
break;
}
i++;
}
}
return AllContracts;
}
Run Code Online (Sandbox Code Playgroud)
你想叫Add(int)
上List<string[]>
-然后将结果赋予的值.基本上,这条线路以多种方式被打破:
AllContracts.Add(i)= parser.ReadFields();
Run Code Online (Sandbox Code Playgroud)
也许你真的想要:
string[] fields = parser.ReadFields();
if (fields == null)
{
break;
}
AllContracts.Add(fields);
Run Code Online (Sandbox Code Playgroud)
在这一点上,你根本不需要i
- 你不会在列表的末尾找到一个空条目(这很可能会在以后引起你的问题 - 想要一个空终止列表肯定是不寻常的).
另外,我建议不要使用PascalCasing作为本地变量名.