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)
但项目似乎不是为什么?
我在等你的帮助谢谢
答案 0 :(得分:5)
您:
foreach (var item in result)
{
result.Add(item);
}
在迭代它时,您无法修改List<>
。它将从枚举器中引出一个异常,说它的底层集合已被修改。
答案 1 :(得分: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,它将以相反的顺序检索新列表 在里面我们将它们添加到正确的位置并删除重复的