我想使用c#从ArrayList检索数据

时间:2011-01-03 21:52:46

标签: c#

我想从ArrayList中检索对象数据;

public class Form1
{

 ArrayList list = new ArrayList();

private void OnSockMessage(object sender, SockEventArgs e)
 {

        Regex MyRegex = new Regex("^[<][A-Za-z]");
        if (e.SockMsg != null)
        {
            string y = e.SockMsg.ToString();

            if (MyRegex.IsMatch(y) == true)
            {

                rrr = y;
                string ipdd = SocClient[e.SocketRef].Soc.RemoteEndPoint.ToString();
                //serverkey seckey;
                list.Add(new serverkey(ipdd,rrr));


            }
            else
            {
                string curipadd = SocClient[e.SocketRef].Soc.RemoteEndPoint.ToString();

                for (int i = 0; i < list.Count-1; i++)
                {


                    //serverkey pk = list[i] as serverkey;
                    //string jj =  list[i].ToString();
                   // serverkey pk = new serverkey(list[i].ToString());

                   /*********************************************
                   here i want to retrieve data from array list
                   *********************************************/
                   string ipadd;


                    if (curipadd == ipadd )
                    {
                        y = DecryptString(e.SockMsg, rrr);
                        listBox1.Items.Add(txtIP.Text + " <<" + y);

                    }
                }

            }
        }

public class serverkey : Form1
    {
        string ipaddress;

        string secertkey;


        public serverkey(string IPAdd, string Seckey)
        {
            ipaddress = IPAdd;
            secertkey = Seckey;
        }
 public string ip

        {
            get { return ipaddress; }
        }
  public string key
        {
            get { return secertkey; }
        }

1 个答案:

答案 0 :(得分:1)

最好使用强类型泛型List<serverkey>和foreach循环而不是for循环。它会像

List<serverkey> list = new List<serverkey>();

//add your items as you already are

foreach(var item in list)
{
   item.ip ...// use item as a serverkey
}

话虽如此,如果您出于某种原因可以使用通用,请使用“as”

ArrayList list = new ArrayList();

//add your items as you already are

foreach(var item in list)
{
   var sk = item as serverkey;
   sk.ip ...// use item as a serverkey
}