LINQ在循环中添加到列表对象

时间:2011-04-19 10:04:02

标签: c# .net linq

我有一种情况,我需要通过循环对象循环填充列表对象,检查条件,如果满足条件,将项目添加到我的列表中。目前,我无法找到添加到列表所需的语法示例,而不是清除它,并在每次循环迭代到下一个项目时重新填充它。有人可以帮忙吗?

List<ProfileRightsJSON> prf = new List<ProfileRightsJSON>();

try
{
    for (int i = 0; i < lstProfiles.Count; i++)
    {
        prf = (from p in _database.tblProfileRights
               where p.fkProfileID ==
               lstProfiles[i].ProfileID
               select new ProfileRightsJSON
               {
                   FunctionID = p.fkFunctionID,
                   UserTypeID = p.fkUserTypeID,
                   RecursiveRights = p.RecursiveRights
               }).ToList();
    }

1 个答案:

答案 0 :(得分:2)

看起来你真的想要这样的东西:

var profileIds = lstProfiles.Select(x => x.ProfileID).ToList();

var prf = (from p in _database.tblProfileRights
           where profileIds.Contains(p.fkProfileID)
           select new ProfileRightsJSON
           {
               FunctionID = p.fkFunctionID,
               UserTypeID = p.fkUserTypeID,
               RecursiveRights = p.RecursiveRights
           }).ToList();