2010-10-19 9 views
3

У меня есть следующий класс:Родовое List.Count дает System.ArgumentException

public class SimContactDetails2G 
{ 
    public String AbreviatedName { get; set; } 
    public String DialingNumber { get; set; } 
    public int Index { get; set; } 
    public String Surname { get; set; } 

    public SimContactDetails2G() 
    { 

    } 

    public SimContactDetails2G(String name, String phoneNumber) 
    { 
     AbreviatedName = name; 
     DialingNumber = phoneNumber; 
    } 

} 

я хочу, чтобы создать список указанных объектов. так я делаю,

List<SimContactDetails2G> simContactDetails2GToBackUp = new List<SimContactDetails2G>(); 

Однако, когда я пытаюсь получить количество элементов на переменную «simContactDetails2GToBackUp», он дает ошибку folwing:

Count = '((System.Collections.Generic.List<T>)(simContactDetails2GToBackUp)).Count' threw an exception of type 'System.ArgumentException'

программа не врезаться, но я не можете получить доступ к свойству count. Я могу добавить элементы в список, список заселен. Но я не могу получить счет. Любая идея для этого странного поведения?

+4

Это только когда вы отлаживаете, не так ли? –

+1

Где в вашем коде вы получаете доступ к 'Count'? Это может быть ключевым здесь ... –

+0

Вы невольно определили переменную, называемую «Count», и компилятор запутывается в отношении того, на какой счет вы ссылаетесь? – smirkingman

ответ

0

Почему вы выбрасываете List<T> вместо List<SimContactDetails2G>?

+0

Я не перечисляю список . его ошибка, которую я опубликовал точно так же, как я ее получаю при отладке. – NeerajC

0

использовать его как:

int Count = simContactDetails2GToBackUp.Count; //you can use it without any typecast 
    or 
int Count = ((System.Collections.Generic.List<SimContactDetails2G>)(simContactDetails2GToBackUp)).Count;//you will have to specify its type while performing typecast. 

я испытал это, его работа с выше кодом. , но первый предпочтительнее. потому что нет необходимости в типе.

Смежные вопросы