是否可以创建模拟数组的属性?

时间:2019-03-15 23:48:51

标签: c# arrays properties

我有一个结构体数组,我想创建一个属性,该属性并非专门用于数组,而是模拟一个数组,因为它返回了struct数组中某个元素的特定属性。像

using System;
namespace neuralNet {
    private struct neuralLayers {
        public double[] results;
        //other fields
    }
    public int numNeurons[int i] {get { return neuralLayers[i].results.length; }}
}

因此,它是一个属性,它可以模拟int []的效果而无需实际创建对象。有没有办法做到这一点?目前,我有一个int[] numNeurons属性,该属性与结构本身分开维护,但是我宁愿只访问直接请求的元素的长度。

1 个答案:

答案 0 :(得分:2)

听起来,您想要拥有一个属性,该属性返回一个数组,其中包含myStruct.structField对象数组中每个myStruct数组字段的长度。

如果是这种情况,那么您可以这样做:

public int[] StructFieldLength => classField?.Select(c => c.structField.Length).ToArray();