我正在使用LINQ to entity返回一个对象列表
var st = personsList.Select(p => new
{
ID = p.Id,
Key = p.Key,
Name = p.Name,
Address = p.Address,
City = p.City,
PhoneNumber = p.PhoneNumber
})
return st.ToList();
Run Code Online (Sandbox Code Playgroud)
在我获得另一个类的列表后,我如何访问每个属性?
就像是
foreach(object s in St)
{
string name = s.Name;
}
Run Code Online (Sandbox Code Playgroud)
我没有预定义的类来将对象强制转换为它.
这可以在不创建类并将对象强制转换为该类类型的情况下完成吗?
谢谢
你在使用C#4吗?您可以尝试使用dynamic:
foreach(dynamic s in St)
{
string name = s.Name;
}
Run Code Online (Sandbox Code Playgroud)
当然,风险是,如果您尝试访问该对象没有的属性,您只能在运行时找到它.
顺便说一下,在这种情况下,实际创建一个具有所有这些属性的类是不是更有意义?您显然需要在几个地方使用它们,并且您将获得类型安全和编译时错误的好处.
小智 5
你可以使用以下
foreach(object s in St)
{
Type type = s.GetType();
PropertyInfo property = type.GetProperty("Name");
if(property !=null)
{
string name= (string )property.GetValue(s, null);
}
}
Run Code Online (Sandbox Code Playgroud)
您必须将命名空间 System.Reflection 添加到类
| 归档时间: |
|
| 查看次数: |
2605 次 |
| 最近记录: |