c# - C#获取C#中某类对象的所有属性
问题描述
我有一个有 10 个 IFormFiles 的对象。我想将它们放入 IFormFile 列表中,以便可以轻松操作它。
public class Car{
public IFormFile Imagem1 {get; set;}
public IFormFile Imagem2 {get; set;}
......
}
List<IFormFile> imagens = new List<IFormFile>();
foreach(IFormFile imagem in carro.)
{
imagens.add(...);
}
有没有办法将 IFormFile 传递给列表,或者我必须在 Car 对象中操作使用它们。
我忘了说我正在使用添加它们
图像.add(car.Image1);
但是我的代码越来越乱了。因为我必须检查空值和许多其他事情。如果我可以循环获取 IFormFile,我的生活会轻松得多。
解决方案
这是一个从提供的对象返回指定类型的所有属性的方法:
public static List<TProperty> GetAllPropertyValuesOfType<TProperty>(this object obj)
{
return obj.GetType()
.GetProperties()
.Where(prop => prop.PropertyType == typeof(TProperty))
.Select(pi => (TProperty)pi.GetValue(obj))
.ToList();
}
你可以像这样使用它:
Car myCar;
List<IFormFile> imagesOfMyCar = myCar.GetAllPropertyValuesOfType<IFormFile>();
推荐阅读
- asp.net-core - 在 web api 的查询字符串中传递一个 json 对象?
- visual-studio - 在 Visual Studio 中禁用性能计数器占用空间
- arrays - 错误:“char 数组初始化程序中的多余元素”
- node.js - ECS Fargate 健康检查在迁移到 fastify 后失败
- sql - [SQL][CHINOOK][CTE] 特定专辑的平均销量,按计费国家分组
- automation - 编译脚本中的异常
- laravel - 在 livewire 中为 QueryString 传递两个值
- javascript - Javascripts not working after Django update
- javascript - JavaScript "copy to clipboard" function doesn't work on ASP.NET server
- javascript - 如何让我的机器人在加入服务器后自动创建机器人工作所需的频道和角色?