如上所述,它们按选择顺序排列。
您正在根据avClass.Properties的排序读取它们.... 为此工作avXClass.Properties [3]必须在你想要的地方[点列表描述]
这不是一个好主意,它改变了两端的排序,如果你很幸运,你的代码会立即失效。 某种映射可能会这样做,或者只是
AVClass.SetProperty [SomeKnownPropertyName] = reader.Fields [SomeKnownFieldName];
嗯,目前尚不清楚它是否是 只要 问题,但这对我来说不对:
for (int i = 0; i < AVClass.AV_CLASS_PROPERTIES; i++) { avClass.Properties[i] = new AVProperty((AVProperty.PROPERTY_ID)i, fields[i]); results.Add(avClass); }
你添加了相同的参考( avClass )到你的结果列表 对于每个领域 。我怀疑你想把它 Add 呼叫 后 循环。
avClass
Add
另外,你还没有表现出什么 AVProperty.PROPERTY_ID 是,但你需要确保查询的SELECT部分匹配。据推测它是一个枚举...所以你需要对应于“bas。[BAS BACnet Object Type / Instance]”的枚举值为0,等等。
AVProperty.PROPERTY_ID
(如果您可以提供更多相关代码,我们可能会帮助您更多。我也会 非常 建议您查看代码并使您的名字更加不言自明和惯用。 .NET不使用SHOUTY_CAPS作为名称。)
另外:
using
GetValues