Веб-метод, возвращающий Arraylist с коллекцией объектов

#c# #web-services #arraylist

#c# #веб-сервисы #arraylist

Вопрос:

У меня есть a webmethod , который возвращает an ArrayList , содержащий 4 объекта:

     public class Getdata
    {
        public string Name { get; set; }
        public int TagID { get; set; }
        public string Address { get; set; }
    }

    [WebMethod]
    public ArrayList GetValues()
    {
        ArrayList list = new ArrayList();
        Getdata employee1= new Getdata()
        {
            Name="Sathya",
            TagID=10,
            Address="Chennai"
        };
        Getdata employee2= new Getdata()
        {
            Name="Ram",
            TagID=11,
            Address="Chennai"
        };
        Getdata employee3= new Getdata()
        {
            Name="Pandi",
            TagID=12,
            Address="Chennai"
        };
        Getdata employee4= new Getdata()
        {
            Name = "Karthick",
            TagID = 13,
            Address = "Chennai"
        };
        list.Add(employee1);
        list.Add(employee2);
        list.Add(employee3);
        list.Add(employee4);

        return list;
    }
  

Но здесь я просто хочу получить (отобразить) Name всех этих сотрудников. Как я могу это сделать в пользовательском интерфейсе?

И это мой метод, вызывающий это webmethod :

     protected void Page_Load(object sender, EventArgs e)
    {
        EmployeeWebService obj = new EmployeeWebService ();
        ArrayList list = obj.GetValues();//Calling webmethod
        //foreach (object o in list)
        //Response.Write(o);
    }
  

Вывод должен быть:

 Sathya
Ram
Pandi
Karthick
  

Комментарии:

1. Используйте List<getData> вместо ArrayList

Ответ №1:

Пожалуйста, попробуйте следующее…

 public class Getdata
{
    public string Name { get; set; }
    public int TagID { get; set; }
    public string Address { get; set; }
}

[WebMethod]
public List<GetData> GetValues()
{
    var list = new List<GetData>();
    Getdata employee1= new Getdata()
    {
        Name="Sathya",
        TagID=10,
        Address="Chennai"
    };
    Getdata employee2= new Getdata()
    {
        Name="Ram",
        TagID=11,
        Address="Chennai"
    };
    Getdata employee3= new Getdata()
    {
        Name="Pandi",
        TagID=12,
        Address="Chennai"
    };
    Getdata employee4= new Getdata()
    {
        Name = "Karthick",
        TagID = 13,
        Address = "Chennai"
    };
    list.Add(employee1);
    list.Add(employee2);
    list.Add(employee3);
    list.Add(employee4);

    return list;
}




protected void Page_Load(object sender, EventArgs e)
{
    EmployeeWebService obj = new EmployeeWebService ();
    var list = obj.GetValues();//Calling webmethod
    foreach (var item in list) 
    {
        Response.Write(item.Name   "<br>");
    }
}
  

Комментарии:

1. Извините — не уделяю пристального внимания. Измените эти ArrayLists на List<getData> . Я отредактирую свой ответ.

2. Следовательно, с помощью ArrayList невозможно получить только имя??

3. ArrayLists можно использовать для хранения объектов любого типа, и поэтому, когда вы извлекаете элементы из ArrayList, они должны быть приведены к их правильному типу. С другой стороны, общий список<> содержит элементы определенного типа, и нет необходимости приводить их содержимое при обращении. Вы можете использовать ArrayList, но вы должны позаботиться о правильном приведении. С другой стороны, если вы используете List<> , вы обнаружите, что он будет работать для вас автоматически.