Похоже, ваш провайдер с ошибками содержит ошибку, вам, вероятно, следует сообщить об этой ошибке.
В то же время, одним из способов правильного подсчета будет использование keys.AsEnumerable().Count()
. НО, это повлечет за собой оценку всей коллекции. Таким образом, если в полученной коллекции много элементов, вы получите их все только для подсчета.
Другой вариант, который вы можете попробовать, - это использовать что-то вроде keys.GroupBy(k => k).Count()
или, возможно, то же самое без Distinct()
и надеяться, что в этом случае такой же ошибки нет.