我想将datarow[]
转换为List<int>
List<int> UserIds;
public void GetGravatars()
{
var cmd = access.GetSqlCommandStoredProcedure("uspMembershipGetUserGravatarList");
var table = access.ExecuteDataTable(cmd, DAL.Logic.Common.ConnectionStrings.User);
int[] rows = new int[table.Rows.Count];
table.Rows.CopyTo(rows, 0);
UserIds = rows.ToList<int>();
}
public bool UserHasGravatar(int userId)
{
UserIds.Find(
delegate(int i)
{
return i == userId;
}
);
return false;
}
这样做的最佳方式是什么?
编辑:我的代码需要遍历一个用户列表,大约40000,并更新他们的图像,如果他们没有,所以我认为最快,将所有带有图像的用户ID加载到List中,然后检查数据库中的所有用户ID,如果userid不存在,则更新图像,否则继续。
答案 0 :(得分:8)
rows.Select(r=>/*However you get a single int from a single row*/).ToList();
<强>更新强>
我假设您使用的是.NET Framework 3.5?但我可能错了......