Jump to content
Sign in to follow this  
Maradona101

ArrayList em Class

Recommended Posts

Maradona101

Boas.

class ClassCartao
    {
        private int codCartao;
        private double plafond;
        private double valorDivida;
        private DateTime Datavalor;
        private bool bloqueado;
        static public ArrayList ListaCompras = new ArrayList();
        public static int Total = 0;

        public ClassCartao(int codC)
        {
            codCartao = codC;
            ListaCompras = new ArrayList();
        }

        
        public bool Obterbloquado
        {
            get { return bloqueado; }
            set { bloqueado = value; }
        }


        public DateTime ObterDataValor
        {
            get { return Datavalor; }
            set { Datavalor = value; }
        }

        public void listar(DataGridView DGVConsultar)
        {
            int codigo;
            int quantidade;
            int valor;
            string descricao;
            int i = 0;
          
                    foreach (ClassCompra cc in ClassCartao.ListaCompras)
                    {
                        if (cc.Obterpaga == false)
                        {
                            codigo = cc.Obtercodigo;
                            descricao = cc.Obterdescricao;
                            valor = cc.Obtervalor;
                            quantidade = cc.Obterquantidade;
                            DGVConsultar.Rows.Add();
                            DGVConsultar.Rows[i].Cells[0].Value = codigo;
                            DGVConsultar.Rows[i].Cells[1].Value = descricao;
                            DGVConsultar.Rows[i].Cells[2].Value = valor;
                            DGVConsultar.Rows[i].Cells[3].Value = quantidade;
                            i++;
                        }
           
                }
        }

        public void preenche(ClassCompra cc)
        {
            ListaCompras.Add(cc);
        }


        public int Obtercodigo
        {
            get { return codCartao; }
            set { codCartao = value; }
        }

        public double Obterplafond
        {
            get { return plafond; }
            set { plafond = value; }
        }

        public double Obtervalor
        {
            get { return valorDivida; }
            set { valorDivida = value; }
        }

Esta classe tem uma ArrayList declarada, que guarda várias compras para cada cartao.

Se eu inserir um cartao, é criado um novo objecto da classe cartao e consequentemente um novo objecto codigo, plafond, etc.

O meu problema é que crio um cartao com codigo  1 e insiro compras na araylist, e a seguir crio outro cartao com codigo 2(ja verifiquei e ele altera realmente o codigo para 2 ou seja esta a criar um novo objecto) mas adiciona as compras deste novo cartao na mesma arraylist.

Assim não tenho forma de saber quais as compras o cartao e do cartao2.

O método que uso para preencher a arraylist é o "preenche", aparece na classe.

Share this post


Link to post
Share on other sites
bruno1234

Isso é porque o ArrayList é estático.

Se tirares a keyword static, já deve funcionar como queres.

Outra sugestão, o ArrayList já não é aconselhado utilizar, a alternativa é usares o List<T>.

Podes substituir usando isto:

private List<ClassCompra> ListaCompras = new List<ClassCompra>();


Matraquilhos para Android.

Gratuito na Play Store.

https://play.google.com/store/apps/details?id=pt.bca.matraquilhos

Share this post


Link to post
Share on other sites
Maradona101

Isto é par um trabalho de curso, tenho mesmo que usar arraylist. Já gora, alguém sabe como faço para ordenar de forma crescente a arraylist, por um capo dateTime?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.