【问题标题】:Cannot implicitly convert type sting[] to 'system.collections.arraylist'无法将类型 string[] 隐式转换为 'system.collections.arraylist'
【发布时间】:2018-03-16 04:11:53
【问题描述】:

我是 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;
            }
        }

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

错误是:

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

【问题讨论】:

  • 我猜GetFileList() 返回一个string[]

标签: c# asp.net arraylist


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    不要使用ArrayList 也几乎没有理由。正如错误所述

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

    为什么不直接使用

    var filelist = sftp.GetFileList(pathGetFile);
    

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

    【讨论】:

      【解决方案3】:

      因为sftp.GetFileList(pathGetFile); 返回一个string[]。一个简单的解决方法是写var fileliststring[] filelist 而不是ArrayList

      【讨论】:

        猜你喜欢
        • 2018-03-01
        • 2013-01-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多