处理对象时更改一个字母的快速方法

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);

为了更加灵活,请使用 Lists 而不是数组。