public class ExampleClass
{
private int x;
private int y;
public ExampleClass(int x, int y)
{
this.x = x;
this.y = y;
}
/// <summary>
///
/// </summary>
/// <param name="typeValueX"></param>
/// <param name="typeValueY"></param>
public ExampleClass(TypedValue typeValueX, TypedValue typeValueY)
{
x = (int)typeValueX.Value;
y = (int)typeValueY.Value;
}
/// <summary>
/// Преобразование в массив TypedValue из двух элементов
/// </summary>
/// <returns></returns>
public TypedValue[] ToTypedValues()
{
return new TypedValue[]
{
new TypedValue((int)DxfCode.Int32, x),
new TypedValue((int)DxfCode.Int32, y)
};
}
/// <summary>
/// Получение списка объектов из записи в РД или Extension Dictionary
/// </summary>
/// <param name="typedValues">Массив TypedValues из РД или ExtDict</param>
/// <returns></returns>
public static List<ExampleClass> GetObjectsFromTypedValues(IEnumerable<TypedValue> typedValues)
{
List<ExampleClass> ret = new List<ExampleClass>();
for (int i = 0; i < typedValues.Count(); i += 2)
{
ret.Add(new ExampleClass(typedValues.ElementAt(i), typedValues.ElementAt(i + 1)));
}
return ret;
}
/// <summary>
/// Преобразование коллекции объектов в список TypedValues для сохранения в РД или ExtDict
/// </summary>
/// <param name="exClassObjs"></param>
/// <returns></returns>
public static List<TypedValue> ObjectsToTypedValues(IEnumerable<ExampleClass> exClassObjs)
{
List<TypedValue> ret = new List<TypedValue>();
foreach (ExampleClass exClassObj in exClassObjs)
{
ret.AddRange(exClassObj.ToTypedValues());
}
return ret;
}
}