Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用用户输入的变量名访问类属性_C#_Asp.net_.net_Vb.net_Visual Studio - Fatal编程技术网

C# 使用用户输入的变量名访问类属性

C# 使用用户输入的变量名访问类属性,c#,asp.net,.net,vb.net,visual-studio,C#,Asp.net,.net,Vb.net,Visual Studio,基本上,我有一个类似于下面的类,但要长得多 Public Class inventory Public Property id As Integer Public Property name As String End Class 在另一个类中,我有一个称为“类的顺序”的清单 所以当我在列表上循环时,我可以 For Each i In orders Console.WriteLine(i.name) Next 但我想在现场设置一个变量。 很像 然而,我得到错误

基本上,我有一个类似于下面的类,但要长得多

Public Class inventory
    Public Property id As Integer
    Public Property name As String
End Class
在另一个类中,我有一个称为“类的顺序”的清单 所以当我在列表上循环时,我可以

For Each i In orders
        Console.WriteLine(i.name)
Next
但我想在现场设置一个变量。 很像

然而,我得到错误,因为rrr不是库存中的成员! 所以,请任何人知道如何解决这个问题,并能够从一个变量访问该类让我知道 谢谢

在中提供了答案,但答案是C。下面是vb.net的翻译

公共类目录
作为整数的公共属性id
作为字符串的公共属性名称
“我添加了一个自定义构造函数,以便更轻松地填写列表
Public Sub New(i为整数,n为字符串)
id=i
name=n
端接头
'添加回默认构造函数
公共分新()
端接头
末级
从{新库存(1,“苹果”)、新库存(2,“橙子”)、新库存(3,“梨”)}以新库存(库存)的形式私下订购
专用子操作码()
Dim rrr As String=“name”Console.ReadLine()就像用户键入的名称一样
对于每一个我都有秩序
Console.WriteLine(GetPropertyValue(i,rrr))
下一个
端接头
私有函数GetPropertyValue(src作为对象,PropName作为字符串)作为对象
返回src.GetType().GetProperty(PropName).GetValue(src,Nothing)
端函数
输出:

苹果

橙子


也许一个类不是保存你的数据的最好方法,考虑使用<代码>字典<代码>你想用那个变量做什么?不清楚您想要一个变量来定位是什么意思?抱歉,我在中指定了一个变量名,该变量名在运行时会动态变化。您的意思是
dim theorederiseek=orders.FirstOrDefault(function(o)o.name.Equals(rrr))
?(或
包含(rrr)
StartsWith(rrr)
或…)rrr是一个变量名,其值指向类属性。因此,在上面的示例中,rrr的值将是name或id
Dim rrr As String = Console.ReadLine()
For Each i In orders
     Console.WriteLine(i.rrr)
Next