将List <t>添加到List <t> C#

时间:2016-07-14 16:24:54

标签: c# list

我有一个结构:

public class FolderDirectoryStructure
{
    public string ChildFolder {get; set;}
    public FileExtension Extension {get; set;}
}

另一个结构:

public class FileExtension
{
    public string Extension {get; set;}
    public int ExtensionCount {get; set;}
}

我现在要做的是将现有的FileExtension添加到我的FolderDirectoryStructure。如下所示:

private List<FolderDirectoryStructure> FolderDS = new List<FolderDirectoryStructure>();

private List<FileExtension> extensions = new List<FileExtension>();

extensions.Add(new FileExtension() {Extension = ".jpg", ExtensionCount = 1});

FolderDS.Add(new FolderDirectoryStructure() {ChildFolder =
@"C:\users\blah\desktop\somefolder", Extension = extensions});

这不起作用,因为我收到错误:

  

无法将Implicity类型'System.Collections.Generic.List'转换为'DirectoryStructure.Extensions'

我也尝试过:

FolderDS.Add(new FolderDirectoryStructure() { ChildFolder =
@"C:\users\blah\desktop\somefolder", Extension = new Extensions()
{extensions.Extension, extensions.ExtensionCount} });

我还想到了一个AddRange,因为我正在尝试添加一系列扩展,但这似乎没有。我似乎已经没有选择了。

所以希望有人可以帮我解决这个问题,我当然会很感激。

5 个答案:

答案 0 :(得分:2)

目前Extension的{​​{1}}属性属于FolderDirectoryStructure,您尝试将FileExtension列表分配给此属性,从而导致错误。因此,最好将属性更改为列表。那么您的代码将正常工作,您可以更改类的定义:

FileExtension

答案 1 :(得分:1)

break;

声明扩展名为public class FolderDirectoryStructure { public string ChildFolder {get; set;} public FileExtension Extension {get; set;} } 。您尝试在此处分配 FileExtension

List<FileExtension>
显然,这是行不通的。修正差异,错误就会消失。

答案 2 :(得分:1)

你有

public FileExtension Extension {get; set;}

但您正在尝试设置变量

extensions 

List<Extension>

答案 3 :(得分:1)

你的班级有一个扩展对象,但你试图设置列表,你应该像这样重写你的班级:

public class FolderDirectoryStructure
{
    public string ChildFolder {get; set;}
    public List<FileExtension> Extension {get; set;}
}

答案 4 :(得分:1)

在FolderDirectoryStructure Extension中是一个单独的项目,你不能将一个List分配给FileExtension属性,错误就是说出了什么错误。这项工作

public class FolderDirectoryStructure
{
    public string ChildFolder {get; set;}
    public List<FileExtension> Extension {get; set;}//change this
}