Я открываю и редактирую Word DOCX в библиотеке OpenXML C#.OpenXML C# Исключение в методе подсчета коллекции
У меня есть этот код:
IEnumerable<Break> breaks = p.Descendants<Break>().Where(s => s != null && s.Type == BreakValues.Page);
int count = breaks.Count(); // THIS THROWS EXCEPTION!
Исключение составляет:
Error in implicit conversion. Cannot convert null object.
at DocumentFormat.OpenXml.EnumValue`1.op_Implicit(EnumValue`1 xmlAttribute)
at Reporting.Report.<generate>b__1(Break s)
at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
at System.Linq.Enumerable.Count[TSource](IEnumerable`1 source)
at Reporting.Report.generate()
Однако это
Console.WriteLine("breaks == null? : " + (breaks == null));
Вернуться ложь:
breaks == null? : False
Это ошибка в библиотеке?
--- --- РЕДАКТИРОВАТЬ
private int manualCount(IEnumerable<OpenXmlElement> col)
{
int count = 0;
if (col == null)
{
return count;
}
foreach (OpenXmlElement elem in col)
{
count++;
}
return count;
}
, приведенный выше цикл (Еогеасп) ошибки вне с той же проблемой. Кажется, это ошибка OpenXML?
--- EDIT РЕШЕНИЕ ---
Проверить первое, что тип не пуст!
b.Type != null && b.Type == BreakValues.Page
Я также поставил чек, чтобы проверить, является ли s нулевым, и это не помогает. – jn1kk