У меня есть массив структур, и я хочу создать свойство, которое не является конкретно массивом, но имитирует массив, возвращая определенное свойство определенного элемента массива структур. Что-то типа
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, которое поддерживается отдельно от самой структуры, но я бы предпочел просто получить доступ к длине запрошенного элемента напрямую.
@RufusL, главное, вы ответили на вопрос, отличный от того, что я задал. Но вы можете указать массив как свойство int[] myProperty { get {return somArray;}}, а затем вызвать элемент из этого свойства, например int myElement = myProperty[index], чтобы индексы уже могли быть переданы свойствам, я просто хочу иметь возможность сделать это без необходимости создавать массив, как я бы в этом случае, поскольку элемент, который я ищу, представляет собой длину массива, который является полем в массиве структур.
В приведенном выше примере где-то должно быть определено class с массивом neuralLayers (и свойством NumNeurons). Также ваш код не соответствует соглашениям C# - он выглядит очень JavaScript-y. :)
@RufusL, лол, да, ты прав, я сейчас не совсем в отъезде :-P





Похоже, вам нужно иметь свойство, которое возвращает массив, содержащий длины каждого поля массива myStruct.structField из вашего массива объектов myStruct.
Если это так, то вы можете просто сделать:
public int[] StructFieldLength => classField?.Select(c => c.structField.Length).ToArray();
@RufusL это метод, а не свойство