-1
if (Session["GrupId"] != null)
{
    var result= context.User.Where(s => s.DepartmentId == GrupId).Select(s => s.Id).ToList();

    foreach (var item in result)
    {
       result.Add(item);
    }               
}

如果我写项目它似乎并没有超出 foreach 我想写这样的东西

var something = context.ResultWhere(s=>s.UserId==item) 但是项目似乎没有为什么?

我正在等待你的帮助谢谢

4

2 回答 2

5

你:

foreach (var item in result)
{
   result.Add(item);
}               

List<>您在迭代它时无法修改。它将从枚举器中引发异常,说明其基础集合已被修改。

于 2013-07-06T19:53:40.790 回答
0

我也让 Jeppe 的话成为我的话,我不知道你想通过按确切顺序添加相同的项目来完成什么,但如果你真的必须,如果你知道列表中项目的类型,我将发布的示例会做你需要的,但再次,如果你已经有了列表,不知道为什么要以相同的顺序再次添加它们:

            int i = lst.Count - 1;
            foreach (YourClass item in lst.Reverse<YourClass>())
            {
                lst.Insert(i, item);
                lst.RemoveAt(i);
                i--;
            }

            //if you dont know the type make an array

            int i = countries.Count - 1;
            foreach (var item in lst.ToArray())
            {
               lst.Insert(i, item);
               lst.RemoveAt(i);
               i--;
            }

这是有效的,因为我们正在调用 reverse ,它将以相反的顺序检索一个新列表,并且在内部我们将它们添加到正确的位置并删除重复项

于 2013-07-06T21:27:20.270 回答