List.AddRange不起作用

时间:2014-01-22 01:07:44

标签: c#-4.0

我有以下代码但是当我向payLoad.Files添加更多文件时,它不会给我任何异常,也不会将文件添加到有效负载。

任何人都可以帮助我

string xmlTestPayload = XDocument.Load(Path.Combine(HttpRuntime.AppDomainAppPath, @"Services\STestPayload.xml")).ToString();

XmlSerializer serializer = new XmlSerializer(typeof(STestPayload));

STestPayload payLoad = null;
using (var reader = new StringReader(xmlTestPayload))
{
    payLoad = (STestPayload)serializer.Deserialize(reader);
}
if (payLoad != null)
{
    TestFile[] files = GetDocumentList(DocumentList);
    if (files != null && files.Count() > 0)
    {
    //not working
        payLoad.Files.ToList().AddRange(files);
    }
}

由于

2 个答案:

答案 0 :(得分:2)

您正在创建新列表但不存储返回值,请尝试以下方法:

var myList =  payLoad.Files.ToList();
myList.AddRange(files);

答案 1 :(得分:0)

您需要将IList更改为List才能使用AddRange。当你使用IList时,它不支持AddRange,因此我们使用.ToList(),其中创建了临时列表,其他列表中的元素被添加到那个未知(我们不知道它的位置,因为它是临时),那是为什么我们看不到列表永远不会增加值。