我不斷收到一個索引超出範圍例外。不能是非負數,並且小於集合的大小。指數超出範圍。必須是非負的錯誤
問題是我檢查toRemove
的人數比受訪者低。那麼這個錯誤是怎麼發生的?如果5個在respondents
和toRemove
只有3,那麼這個錯誤是怎麼發生的?
var respondents = RespondentRepository.GetRespondents(UserSession, fieldsToInclude);
// iterate through the respondents. If search query not like results throw the result away.
List<int> toRemove = new List<int>();
for (int i = 0; i < respondents.Count; i++)
{
if (!respondents[i].EmailAddresses.Any())
toRemove.Add(i);
else
{
bool checkSingleEmail = false;
bool checkAllEmails = false;
for (int j = 0; j < respondents[i].EmailAddresses.Count; j++)
{
checkSingleEmail = respondents[i].EmailAddresses[j].Address.ToString().Contains(query);
if (checkSingleEmail == true)
checkAllEmails = true;
if (respondents[i].EmailAddresses.Count == 1 && j == 0 && checkAllEmails == false)
toRemove.Add(i);
else if (checkAllEmails == false && j+1 == respondents[i].EmailAddresses.Count)
toRemove.Add(i);
}
}
}
foreach (var respRemove in toRemove)
{
respondents.RemoveAt(respRemove);
}
+1 oskar,你說的跟我自己差不多:) –
當我嘗試使用上面的respRemove foreach時,我收到repondents.Remove(respRemove)的錯誤。最好的重載方法匹配有一些無效的參數。 – allencoded
@allencoded那麼受訪者的類型是什麼? –