У меня есть общий список под названием connectedEntites, и я добавляю элементы в этот список в цикле for. Я делаю нулевую проверку перед добавлением. Но даже тогда, когда элемент добавляется к этому List<>
, также добавляется нулевое значение. Я отлаживал, но теперь можно добавить нулевое значение. Из-за этого нулевого значения, когда я выполняю операцию чтения, программа вылетает (поскольку это программа COM).Общий список добавляет нулевые значения в C#
Ниже приведен код класса
public class EntityDetails
{
public ObjectId objId { get; set; }
public Handle objHandle { get; set; }
public string className { get; set; }
public override bool Equals(object obj)
{
if (obj == null) return false;
EntityDetails objAsEntityDetails = obj as EntityDetails;
if (objAsEntityDetails == null) return false;
else return Equals(objAsEntityDetails);
}
public bool Equals(EntityDetails other)
{
if (other == null)
return false;
return (this.objId.Equals(other.objId));
}
}`
Ниже изображение, где вы можете увидеть нулевые значения и емкость также дублирует добавляется элемент, но счетчик показывает правильное значение.
'Count' говорит _2_ не _4_. _ [Емкость всегда больше или равна Count. Если Count превышает Capacity при добавлении элементов, емкость увеличивается за счет автоматического перераспределения внутреннего массива перед копированием старых элементов и добавления новых элементов] (https://msdn.microsoft.com/en-us/library/y52x03h2 (v = vs.110) .aspx) _ – MickyD
Да, это говорит 2. Но почему нулевые значения? – Santosh
Нулевые значения указаны во внутреннем массиве, который использует List. Это деталь реализации, которая не должна беспокоить. Каким образом вы используете список для получения исключения/сбоя? (И они являются нулями, потому что это 'default (EntityDetails)') – Dirk