【发布时间】:2018-10-26 16:46:56
【问题描述】:
我使用了以下代码:
ManageUser userObj = new ManageUser();
List<StoreUserList> storeList = new List<StoreUserList>();
StoreUserList sl = new StoreUserList();
foreach (var items in userObj.GetStoreUserList(Username, Password))
{
sl.UserName = items[0].ToString();
sl.EmailId = items[1].ToString();
sl.FirstName = items[2].ToString();
sl.LastName = items[3].ToString();
sl.BadLoginCount = Convert.ToInt32(items[4]);
sl.ManagerName = items[5].ToString();
storeList.Add(sl);
}
StoreUserList 是我的模型,我在其中定义了所有属性。
ManagerUser 是以列表形式返回数据的类数据行>。
所以,我为了填充我使用上述代码的模型类型的通用列表来完成它。
但是,正如您所看到的,我已经硬编码了所有值来绑定模型,然后将该模型添加到列表中。我只是想知道有没有其他方法可以做到这一点,或者有什么神奇的方法可以轻松做到这一点?
【问题讨论】:
-
我们可以使用给定的反射和 LINQ [这里][1] [1]:stackoverflow.com/questions/12662318/…
-
@Harsh:我认为你的代码行不通。会吗?您的 storeList 可能只包含同一行,除非您将定义“sl”的行移到循环中。
-
您的问题将是 Convert.ToInt32。创建将 DataRow 转换为自定义类型的通用方法通常依赖于 DataRow 中的字段值是对象属性的正确类型。您可能可以使用 Convert.ChangeType 以更通用的方式执行该转换。
标签: c#