2013-07-06 29 views
-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 我想寫這樣的事情的foreach項目似乎在C#

var something = context.ResultWhere(s=>s.UserId==item) 但項目似乎並沒有爲什麼?

我等着你的幫助的感謝

+4

你爲什麼要嘗試從重新列入清單? – keyboardP

+4

我意識到有語言障礙,但它真的*不清楚你問的是什麼。你能詳細說明嗎?也許顯示你試過的代碼的嘗試,並指出它不工作的方式?也許如果有錯誤信息,您可以告訴我們該信息以及它發生在哪一行? – David

+2

你能告訴我們樣品輸入和所需的輸出嗎?這會讓你的問題更清楚。讓我們暫時停下來,讓OP有機會得到他的觀點。 –

回答

5

您:

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

,而你通過它迭代不能修改List<>。它會引起調查員的一個例外,說其底層收藏已被修改。

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--; 
      } 

這個工作,因爲我們呼籲相反,這將獲取一個新的列表以相反的順序 和內部我們將它們添加在正確的地方,並刪除重複

相關問題