处理对象时更改一个字母的快速方法
A quick way to change one letter when handling objects
我试过寻找解决方案,但我是新手,我什至不知道从哪里开始。
在 public partial class 中,我需要制作 26 行代码,如下所示,但 ObjC 的 C 部分将从 A~Z 变化。有没有一种方法可以有效地做到这一点,而无需再次复制和粘贴这些行并将每个 C 更改 26 次?
我知道我可以花时间做这个(复制和粘贴 26 次),但我也觉得一定有更好的方法。
public int[] dn_objC= new int[30];
public float[] dtime_objC = new float[30];
public float[] ddtime_objC = new float[30];
public int[] dx_objC = new int[30];
public int[] dy_objC = new int[30];
public float[] dxm_objC = new float[30];
public float[] dym_objC = new float[30];
public float[] dsm_objC = new float[30];
public float[] dvx_objC = new float[30];
public float[] dvy_objC = new float[30];
public float[] dv_objC = new float[30];
目前代码没有问题,我只是想知道一个快速的方法来将 C 更改为 A、B、D 等
第一个改进是使用 multidimensional arrays and/or 词典。
但如果您先创建自定义 class 来保存所有数据,那就更好了:
public class ObjectData {
public int dn { get; set; }
public float dtime { get; set; }
public float ddtime { get; set; }
public int dx { get; set; }
public int dy { get; set; }
public float dxm { get; set; }
public float dym { get; set; }
public float dsm { get; set; }
public float dvx { get; set; }
public float dvy { get; set; }
public float dv { get; set; }
}
然后像这样使用它:
var objects = new Dictionary<char, ObjectData[]>();
objects['A'] = new ObjectData[30];
...
要获取或设置特定值,您可以执行以下操作:
objects['A'][0] = new ObjectData(); // note that you have to instantiate the object first!
objects['A'][0].dn = 14;
Console.WriteLine(objects['A'][0].dn);
为了更加灵活,请使用 List
s 而不是数组。
我试过寻找解决方案,但我是新手,我什至不知道从哪里开始。
在 public partial class 中,我需要制作 26 行代码,如下所示,但 ObjC 的 C 部分将从 A~Z 变化。有没有一种方法可以有效地做到这一点,而无需再次复制和粘贴这些行并将每个 C 更改 26 次? 我知道我可以花时间做这个(复制和粘贴 26 次),但我也觉得一定有更好的方法。
public int[] dn_objC= new int[30];
public float[] dtime_objC = new float[30];
public float[] ddtime_objC = new float[30];
public int[] dx_objC = new int[30];
public int[] dy_objC = new int[30];
public float[] dxm_objC = new float[30];
public float[] dym_objC = new float[30];
public float[] dsm_objC = new float[30];
public float[] dvx_objC = new float[30];
public float[] dvy_objC = new float[30];
public float[] dv_objC = new float[30];
目前代码没有问题,我只是想知道一个快速的方法来将 C 更改为 A、B、D 等
第一个改进是使用 multidimensional arrays and/or 词典。
但如果您先创建自定义 class 来保存所有数据,那就更好了:
public class ObjectData {
public int dn { get; set; }
public float dtime { get; set; }
public float ddtime { get; set; }
public int dx { get; set; }
public int dy { get; set; }
public float dxm { get; set; }
public float dym { get; set; }
public float dsm { get; set; }
public float dvx { get; set; }
public float dvy { get; set; }
public float dv { get; set; }
}
然后像这样使用它:
var objects = new Dictionary<char, ObjectData[]>();
objects['A'] = new ObjectData[30];
...
要获取或设置特定值,您可以执行以下操作:
objects['A'][0] = new ObjectData(); // note that you have to instantiate the object first!
objects['A'][0].dn = 14;
Console.WriteLine(objects['A'][0].dn);
为了更加灵活,请使用 List
s 而不是数组。