如何在Blazor中迭代TValue类型属性

如何在Blazor中迭代TValue类型属性,blazor,blazor-server-side,Blazor,Blazor Server Side,我需要迭代Blazor中的TValue类型属性 组件标记为MYComponent @foreach(此.Value(TValue)中的var项) { } @代码{ 公共类MYComponent{ 公共TValue值{get;set;} 私有字符串[]MyValue=新字符串[]{“Value1”、“Value2”}; } } 如果我能很好地理解你的问题,你可以通过反射来实现: @foreach(GetProperties(TValue)中的变量项) { } @代码{ 公共类MYComponen

我需要迭代Blazor中的TValue类型属性

组件标记为MYComponent


@foreach(此.Value(TValue)中的var项)
{
}
@代码{
公共类MYComponent{
公共TValue值{get;set;}
私有字符串[]MyValue=新字符串[]{“Value1”、“Value2”};
}
}

如果我能很好地理解你的问题,你可以通过反射来实现:

@foreach(GetProperties(TValue)中的变量项)
{
}
@代码{
公共类MYComponent
{
公共TValue值{get;set;}
私有字符串[]MyValue=新字符串[]{“Value1”、“Value2”};
公共IEnumerable GetProperties()
{
返回typeof(TValue).GetProperties().Select(p=>p.Name);
}
}
}

什么是
TValue
?它是在哪里定义的?为什么要将它用作函数?Tvalue是在razor页面顶部@typeparam Tvalue中定义的;请用相关代码更新您的问题。当前未在上面运行答案重新运行以下值typeof(TValue).GetProperties(){System.Reflection.PropertyInfo[7]}[0]:{Int32 Length}[1]:{Int64 LongLength}[2]:{Int32 Rank}[3]:{System.Object SyncRoot}[4]:{Boolean IsReadOnly}[5]:{Boolean IsFixedSize}[6]:{Boolean IsSynchronized}Hi@agua来自火星
<select>
@foreach (var item in this.Value(TValue))
        {
            <option selected value=@item></option>
        }
</select>

@code {
public class MYComponent {
           public TValue Value {get;set;}    
           private string[] MyValue = new string[] {"Value1", "Value2"};
}
}