Если вы хотите иметь свойства, которые имеют непосредственное отношение к FUND_CITY
, то обычно вы делаете его самостоятельным объектом и добавляете свойства в новый объект, и вы все равно можете сохранить его в своем объекте BE
как и сейчас.
Если вы хотите, чтобы FUND_CITY
оставался в виде строки, то вы должны добавить StartOffset
и EndOffset
в качестве свойств класса BE
, как вы это сделали с FUND_CITY.Я бы привел вам пример, но вы не указали, к каким типам относятся эти два свойства.
РЕДАКТИРОВАТЬ:
Похоже, вам нужен класс-обертка с набором обобщений.Если вы хотите отслеживать StartOffset
и EndOffset
для каждого свойства в BE
, то сначала создайте универсальный класс, который будет использоваться для каждого свойства в BE:
public class MyProperty<T>
{
public MyProperty(T propertyValue)
{
PropertyValue = propertyValue;
}
public int StartOffset { get; set; }
public int EndOffset { get; set; }
public T PropertyValue { get; set; }
}
PropertyValue
используется для хранения (или wrap ) фактической стоимости имущества.Ваш класс BE
затем изменится и будет выглядеть следующим образом:
public class BE
{
public MyProperty<string> FUND_CITY { get; set; }
public MyProperty<int> SomeOtherProperty { get; set; }
}
, затем вы можете использовать его следующим образом:
class Program
{
static void Main(string[] args)
{
var myBE = new BE();
myBE.FUND_CITY = new MyProperty<string>("some random string value") { StartOffset = 0, EndOffset = 10 };
myBE.SomeOtherProperty = new MyProperty<int>(999);
Console.ReadKey();
}
}
Если вы хотите пойти еще дальше и сохранить списокэти, тогда вы можете использовать встроенный универсальный List type , но тогда у вас есть небольшая проблема: List хочет, чтобы все его содержимое было одного типа.Вы можете обойти это либо с помощью базового класса, либо просто приведя все в Список к типу object
.Вот пример использования базового класса, он немного отличается от кода выше:
public class MyPropertyBase
{
public int StartOffset { get; set; }
public int EndOffset { get; set; }
}
public class MyProperty<T> : MyPropertyBase
{
public MyProperty(T propertyValue)
{
PropertyValue = propertyValue;
}
public T PropertyValue { get; set; }
}
public class BE
{
public MyProperty<string> FUND_CITY { get; set; }
public MyProperty<int> SomeOtherProperty { get; set; }
public List<MyPropertyBase> MyDataPoints { get; set; }
}