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

How would I add information to a specific object in a generic list?

我正在使用 Windows 表格申请。

假设我实例化了一个 class:

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

在我的树中class我有

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

我创建了一个名为 'Add height'

的表单

此表格包含:

protected int _treeHeight;

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

我已经设法让表格显示身高,例如:

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

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

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

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

话虽这么说,但我可以通过几种方式看到它对您有用。第一种方法是让您的 Form 通过构造函数或 属性 或其他方式接收 Tree 对象

public Tree { get; set; }

并直接在您的表单中分配值。

另一种方法是在显示后直接从表单中拉取值。通常,您希望根据表单的关闭方式将 Dialog.Result 设置为确定或取消。但随后您将从表单访问它。在您设置列表中第一棵树的值的示例中。

trees[0].Height = form.TreeHeight;

请注意,没有错误检查,因此您需要确保 trees[0] 存在等。此外,这只会将值分配给第一个元素,因此您需要一种方法来确定您要使用的元素其实都想设置