C#通过动态格式化其名称来调用变量

Lon*_*ish 3 c#

我在datagridview中有12列(它们是从v1到v12的12个属性).是否可以创建一个像这样的动态系统:

int i = 5;
var variablename = "v" + i;
String content = product.variablename;
Run Code Online (Sandbox Code Playgroud)

这将是一个通用的功能

if(i == 5) {
    content = product.v5
}
Run Code Online (Sandbox Code Playgroud)

是的,我知道命名我的属性v1-v12不是一个好习惯,但它有它的用途.我可以写12条if条款,但我只是想知道它是否可能.

编辑:

在具体示例中,我有一个包含每个v1-v12属性的8000个产品的数组.我想动态获取特定单元格的值,因此产品[row].(v + column)应该成为产品[23] .v5.

它更像是一个案例,而不是实际需要,只是想知道它是否可以完成.

Yah*_*hya 5

字典将为您提供灵活性和控制权,以便您可以随意存储并检索它们而无需使用反射等.

var values = new Dictionary<string, string>();
values.Add("v" + i, "somevalue");
Run Code Online (Sandbox Code Playgroud)

并检索它:

var storedValue = values["v" + i];
Run Code Online (Sandbox Code Playgroud)

另外,如果您使用数据网格视图有多行.您还可以使用DataTable存储信息.或者,如果您有一个固定的结构,为什么不创建一个代表该信息和使用的类List<T>