如何将信息添加到通用列表中的特定对象?

时间:2015-12-18 16:02:54

标签: c# oop generic-list

我正在使用Windows窗体应用程序。

假设我已经实例化了一个类的列表:

List<Tree> trees = new List<Tree>();
Tree t1 = new Tree("Evergreen");
Tree t2 = new Tree("Fern");
trees.Add(t1);
trees.Add(t2);

在我的Tree课程中我有

protected int _height
protected string _name

public int Height{get {return _height;}protected set { _height = value;}}
public string Name{ get{return _name;}protected set {_name = value;}

Public Tree(String Name){_name = Name;} //constructor

我创建了一个名为“添加高度”的表单。

在此表单中包含:

protected int _treeHeight;

public int TreeHeight{ get{return _treeHeight;}protected set {_treeHeight = value;}

我设法让表单显示高度,例如:

  • 创建方法
  • 从文本框中获取值
  • 将值设置为TreeHeight

我唯一的问题是将树高添加到列表中的相关对象。

如何将树高添加到列表中的第一个树?

1 个答案:

答案 0 :(得分:0)

你的问题有点难以解析,但是如果我理解你有一个带有字段的表单,你可以修改一个高度,并且想要将修改后的高度分配回特定的树?

如果是这种情况,那么好消息是Tree是一个参考对象。这意味着获取对树的引用将允许您设置值。

据说有几种方法我认为这适合你。第一种方法是让你的Form通过构造函数或属性或

接受Tree对象
public Tree { get; set; }

直接在表单中指定值。

另一种方法是在显示后直接从表单中提取值。通常,您希望将Dialog.Result设置为“确定”或“取消”,具体取决于表单的关闭方式。但是你可以从表单中访问它。在您设置列表中第一个树的值的示例中。

trees[0].Height = form.TreeHeight;

请注意,没有错误检查,因此您需要确保树[0]存在等。另外,这只会将值分配给第一个元素,因此您需要一种方法来确定实际上是哪个元素想要设置。