Вы можете использовать цикл while:
// Some init
List<Person> persons = new List<Person>();
List<Person> resultList = persons;
long bigNumber = 3 * (long)int.MaxValue + 12;
while (bigNumber > int.MaxValue)
{
resultList = resultList.Skip(int.MaxValue).ToList();
bigNumber -= int.MaxValue;
}
resultList = resultList.Skip(int.MaxValue).ToList();
// Then what do what you want with this result list
Но имеет ли ваша коллекция больше записей int.MaxValue
?
Можно попробовать следующий инструмент для создания вещей более нормальными:
Я безусловно не могу. Небольшие ошибки взрываются в страницы и страницы нечитабельного спама. Обычно рано утром, перед кофе.: (
Мой единственный совет состоит в том, чтобы глубоко вздохнуть, запуститься наверху и попытаться проанализировать важные сведения. (Я знаю, легче сказать чем сделать, правильно?).
Как nsanders сказал , STLFilt является хорошим решением. STLFilt собственной разработки (когда Вы не хотите переходить к проблеме установить Perl) должен скопировать сообщение об ошибке в редакторе и начать заменять части ошибки, пока это не становится (более) управляемым.
, например,
s/std::basic_string<char,std::char_traits<char>,std::allocator<char>>/string/g
В менее гиковских терминах это означает:
Замена:
std::basic_string<char,std::char_traits<char>,std::allocator<char>>
С:
string
Некоторые компиляторы дают лучшие сообщения, чем другие. Какой компилятор Вы используете? Однако они все довольно плохи. C++ 0X решит большую часть этой проблемы (см. понятия ), но стандарт не будет выпущен до 2009, и широкая поддержка, вероятно, будет еще позже, чем это:-(
По крайней мере, в Visual Studio, существует больше информации, данной в окне Output Build, а не Ошибочном Списке. У меня была шаблонная ошибка в Ошибочном состоянии Списка, "Не может преобразовать Foo< int> к Foo< int>";. были некоторые строки после фактической ошибки в Окне вывода, которое помогло мне дешифровать, какова фактическая проблема была.