如何在C#中使用List <string []>

use*_*890 2 c# list

以下代码不想编译.我收到一条错误消息:

'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)

Dav*_*jas 7

你要:

AllContracts.Add(parser.ReadFields());
Run Code Online (Sandbox Code Playgroud)


Jon*_*eet 5

你想叫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作为本地变量名.