无法隐式将sting []类型转换为'system.collections.arraylist'

时间:2018-03-16 04:11:54

标签: c# asp.net arraylist

我是asp.net的新手

这是我的代码:

public static string pathGetFile = WebConfigurationManager.AppSettings["pathGetFile"].ToString();

public bool TransferFile(string idcard)
{
    //string file = "";
    try
    {
        Sftp sftp = new Sftp(url, user);                            

        sftp.AddIdentityFile(pathKey);
        sftp.Connect(port);

        string two_char = idcard.Substring(0, 2);

        ArrayList filelist = sftp.GetFileList(pathGetFile);
        bool is_twochar = false;
        string temp = "";
        foreach (var item in filelist)
        {
            temp += item.ToString() + "/n";
            if (item.ToString() == two_char)
            {
                is_twochar = true;
            }
        }

erorr发生在“ArrayList filelist = sftp.GetFileList(pathGetFile);

,错误是:

  

"Cannot implicitly convert type 'string[]' to 'System.Collections.ArrayList'"

3 个答案:

答案 0 :(得分:1)

你可以改变ArrayList filelist = sftp.GetFileList(pathGetFile);var filelist = sftp.GetFileList(pathGetFile);

sftp.GetFileList(pathGetFile)必须返回string[],因为我认为其他代码不需要使用ArrayList,所以您只需将其更改为varstring[]即可。

答案 1 :(得分:1)

不要使用ArrayList,几乎没有理由。由于错误是陈述

  

无法将类型'string []'隐式转换为System.Collections.ArrayList

为什么不使用

var filelist = sftp.GetFileList(pathGetFile);

这会将filelist创建为string[]而不是ArrayList

答案 2 :(得分:0)

因为sftp.GetFileList(pathGetFile);返回string[]。一个简单的修复可以是写var fileliststring[] filelist而不是ArrayList