c# - 使用字符串作为变量的一部分

标签 c#

<分区>

我想使用字符串作为变量的一部分。

例如,在下面的代码中,我有一个名为 productLine 的字符串。我想使用这个字符串中的值来创建一个变量名并调用这个变量的属性“Value”。我想继续切换“productLine”中的值,因此继续切换调用值方法的变量。

有没有办法做到这一点,或者我是否需要重写代码并采用不同的方法?

foreach (string productLine in productLineData)
{
    string templateKey = "{{" + productLine + "}}";
    string templateValue = "";
    if (productRow.productLine.Value != null)
        templateValue = productRow.productLine.Value.ToString();
    productRowText = productRowText.Replace(templateKey, templateValue);
}

productRow 是一个包含我希望使用的属性的模型。

编辑:

productLine 包含一个字符串值。例如,它首先包含 productName。那时我想调用 productRow.productName.Value。下一个“productLine”包含 productPrice。那时我想调用 productRow.productPrice.Value。等等

最佳答案

您可以按照 romain-aga 的建议使用反射来做到这一点。

 using System.Reflection;


    //...
    foreach (string productLine in productLineData)
    {
        string templateKey = "{{" + productLine + "}}";
        string templateValue = string.Empty;
        object value =  productRow?.GetType()?.GetProperty(productLine)?.GetValue(productRow, null);
        if (value != null)
            templateValue = value.ToString();
        productRowText = productRowText.Replace(templateKey, templateValue);
    }
    //...

关于c# - 使用字符串作为变量的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37325038/

相关文章:

c# - DbSet、模型构建器和 EF 导航属性

c# - ASP.NET Core 6 MVC : views are not mapped after adding Identity in project

c# - 具有缓冲区和线程安全的 FIFO/QUEUE

c# - 远程调用时 Powershell SendKeys 访问被拒绝

c# - 哪个操作数调用重载函数

c# - fb :multi-friend-selector, 我可以用它来发送邀请吗?

c# - 如何在 Windows 10(十月更新)中获取剪贴板历史记录?

c# - Blazor Valued 在保持双向绑定(bind)的同时发生了变化

c# - 粒子统一创建星场

c# - 组合搜索条件