首页 > 解决方案 > 是否可以创建一个模拟数组的属性?

问题描述

我有一个结构数组,我想创建一个不是特定数组的属性,而是模拟一个数组,因为它返回结构数组的某个元素的特定属性。就像是

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与结构本身分开维护的属性,但我宁愿直接访问请求的元素的长度。

标签: c#arraysproperties

解决方案


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

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

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

推荐阅读