无法将类型'System.Collections.Generic.List <string []>'隐式转换为'string []'</string []>

时间:2013-04-21 21:51:18

标签: c# asp.net web-services casting

下面是我的代码,它给出了一个错误: 无法将类型'System.Collections.Generic.List'隐式转换为'string []'

我多次尝试解决错误。但我没有这样做。 如果任何机构可以建议什么可能是解决方案..谢谢:)

public GetContentResponse GetContent(abcServiceClient client, QueryPresentationElementIDsResponse querypresentationelementresponse)
        {
            GetContentRequest GetContentRequest = new GetContentRequest();
            GetContentResponse contentresponse = new GetContentResponse();
            querypresentationelementresponse = presentationElementId(client);
            List<string[]> chunks = new List<string[]>();
            for (int i = 0; i < querypresentationelementresponse.IDs.Length; i += 25)
            {
                chunks.Add(querypresentationelementresponse.IDs.Skip(i).Take(25).ToArray());
                contentresponse = client.GetContent(new GetContentRequest()
                {
                    IDs = chunks // here i get this error
                });
            }

            return contentresponse;
        }

2 个答案:

答案 0 :(得分:8)

您正在尝试将List分配给字符串数组。将列表转换为数组。 由于您没有准确指出错误的位置,我想当您分配ID变量时。

以下代码可以解决它:

public GetContentResponse GetContent(abcServiceClient client, QueryPresentationElementIDsResponse querypresentationelementresponse)
        {
            GetContentRequest GetContentRequest = new GetContentRequest();
            GetContentResponse contentresponse = new GetContentResponse();
            querypresentationelementresponse = presentationElementId(client);
            List<string> chunks = new List<string>();
            for (int i = 0; i < querypresentationelementresponse.IDs.Length; i += 25)
            {
                chunks.AddRange(querypresentationelementresponse.IDs.Skip(i).Take(25));
                contentresponse = client.GetContent(new GetContentRequest()
                {
                    IDs = chunks.ToArray()
                });
            }

            return contentresponse;
        }

答案 1 :(得分:1)

我不确定哪种类型的ID或哪条行给你的错误,但如果我不得不猜测,我认为它是IDs = chunks

听起来您正在尝试将列表转换为字符串数组。您需要使用方法转换为使用toArray()。

编辑:好的,你有一个字符串数组数组。你需要抓住正确的:

IDs = Chunks.ToArray()[index]

其中index是正确的数组。对你正在使用的库不是很熟悉,所以遗憾的是我无法详细说明。但是,要猜测,请尝试使用i代替index