gpt4 book ai didi

c# - List 可以有名称吗?有没有办法拥有 "flexible"属性?

转载 作者:太空宇宙 更新时间:2023-11-03 12:07:51 25 4
gpt4 key购买 nike

我在 3D 空间(X、Y、Z)中工作。

我有一个 KDTree(感谢 Accord.Net),我继承并添加了一个属性,该属性具有每个维度的最大值和最小值。我编写了一个构造函数,它从列表中添加值并同时获取最小值和最大值。

树(在我的例子中)可以是 1、2 或 3 维。

如果树只有一维(X 轴),我希望有一个如下所示的属性:

Tree.MinMax.X.Min
Tree.MinMax.X.Min

如果我的树有两个维度(比如 Y 和 Z),那么该属性将如下所示:

Tree.MinMax.Y.Min
Tree.MinMax.Y.Min
Tree.MinMax.Z.Min
Tree.MinMax.Z.Min

我目前拥有的是一个列表。无法命名列表中的每个项目(据我所知)。

class MinMax
{
internal double Min = double.MaxValue;
internal double Max = double.MinValue;

internal void Add(double value)
{
Min = msf.Min(Min, value);
Max = msf.Max(Max, value);
}
}

这给了我以下语法(很难理解):

Tree.MinMax[0].Min
Tree.MinMax[0].Max

有没有一种方法可以命名列表元素,或者有一种方法可以使属性“灵活,有点像命名的元组?”

最佳答案

Tree.MinMax可以是 Dictionary<string, MinMax> .

public Dictionary<string, MinMax> MinMax = new Dictionary<string, MinMax>();

要添加一个键值对(或者用你的话来说,一个“灵活的属性”),

MinMax.Add("Y", new MinMax());

然后您可以像这样访问该属性:

MinMax["Y"]

这将抛出 KeyNotFoundException如果 key 不存在。

关于c# - List<type> 可以有名称吗?有没有办法拥有 "flexible"属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53999923/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com