如何将项添加到实例的List <int>类型的属性中?

时间:2017-06-02 22:02:20

标签: c#

所以,我想要两个List&lt;&gt;类的实例的类型,然后使用方法将这些列表添加到这些列表中,但它不希望以这种方式工作,也不知道如何更正它。 AttachWagonFromLeft()方法不会向列表中添加任何内容,我尝试使用this引用该实例。有谁有想法吗?感谢。

`
public class TrainComposition {
    private List<int> LeftWagons;
    private List<int> RightWagons;

    public List<int> LeftWagons1 { get => LeftWagons; set => LeftWagons = value; }
    public List<int> RightWagons1 { get => RightWagons; set => RightWagons = value; }

    public void AttachWagonFromLeft(int wagonId) {
        this.LeftWagons1.Add(wagonId);
    }

    public void AttachWagonFromRight(int wagonId) {
        this.RightWagons1.Add(wagonId);
    }
[...]
`public static void Main(string[] args) {

        TrainComposition tree = new TrainComposition();
        tree.LeftWagons1 = new List<int>();
        tree.RightWagons1 = new List<int>();
        tree.AttachWagonFromLeft(7);
        tree.AttachWagonFromLeft(13);
        Console.WriteLine(tree.DetachWagonFromRight()); // 7 
        Console.WriteLine(tree.DetachWagonFromLeft()); // 13
`

1 个答案:

答案 0 :(得分:1)

关于您的课程,您可以使用Auto-Implemented Properties (C# Programming Guide)

public class TrainComposition
{
    public List<int> LeftWagons1 { get; set; }
    public List<int> RightWagons1 { get; set; }

    public void AttachWagonFromLeft(int wagonId)
    {
        this.LeftWagons1.Add(wagonId);
    }

    public void AttachWagonFromRight(int wagonId)
    {
        this.RightWagons1.Add(wagonId);
    }
}

您没有提供DetachWagonFromRight和DetachWagonFromLeft实现,但假设它打印了列表中的最后一个参数:

public int DetachWagonFromLeft()
{
    return this.LeftWagons1.Last();
}

您的代码未按预期工作,因为您向左添加了两次而右侧没有添加:

tree.AttachWagonFromLeft(7);
tree.AttachWagonFromLeft(13);