你可以试试这个:
List<ItemProduction> items = Enumerable.Range(1, 5).Select(i => new ItemProduction
{
Main = string.Empty,
ItemDate = DateTime.UtcNow,
ItemType = string.Empty,
ProductionId = string.Empty,
Quantity = 0,
Status = string.Empty
}).ToList();
这将创建 5 个实例,ItemProduction
并根据您的需要使用给定的值初始化所有这些实例。
最好的办法是在您的 ItemProduction 模型中有一个构造函数,如下所示:
public class ItemProduction
{
public string Main { get; set; }
public DateTime TtemDate { get; set; }
public string ItemType { get; set; }
public string ProductionId { get; set; }
public int Quantity { get; set; }
public string Status { get; set; }
public ItemProduction()
{
this.Main = string.Empty;
this.ItemDate = DateTime.UtcNow;
this.ItemType = string.Empty;
this.ProductionId = string.Empty;
this.Quantity = 0;
this.Status = string.Empty;
}
}
因此,上面的代码将简单地变成
List<ItemProduction> items= Enumerable.Range(1, 5).Select(i => new ItemProduction()).ToList();
笔记:
将类属性设置为 PascalCase 是一种约定,因此我已使用嵌套命名约定修改了您的类。您可以阅读此属性命名指南。
更新:
如果你有很多属性,你可以使用反射来做到这一点,如下所示:
public static T Init<T>(T TObject)
{
var properties = TObject.GetType().GetProperties();
foreach (var property in properties)
{
if (property.PropertyType.Equals(typeof(string)))
{
property.SetValue(TObject, string.Empty);
}
else if (property.PropertyType.Equals(typeof(int)))
{
property.SetValue(TObject, 0);
}
else if (property.PropertyType.Equals(typeof(DateTime)))
{
property.SetValue(TObject, DateTime.UtcNow);
}
}
return TObject;
}