如何使用列表c#返回对象

本文关键字:返回 对象 列表 何使用 | 更新日期: 2023-09-27 18:29:39

我有Item.cs类,我想用List<Item>从我的库中返回所有项,。。。。

这是我在WebService1.asmx中的代码

[WebMethod]
public List<Item> GetMyItems()
{
    List<Item> listOfItems= new List<Item>();
    Item add = new Item();
    using (var db = new Baza()) // into in my database (this works fine)
    {  
        var lookUp = from a in db.listOfItems
                     select new
                     {
                         ID = a.ID,
                         Name = a.name,
                         Year= a.year,
                         Price= a.price
                     };
        foreach (var item in lookUp)
        {
            if (item.Name == "Usb")
            {
                add.name = item.Name;
                add.year = item.Year;
                add.price = item.Price;
                listOfItems.Add(add);
            }
        }
        return listOfItems;
    }
}

现在我想在另一个.cs文件中使用这个对象。示例"Program.cs"

所以在程序.cs中,我将方法称为"GetMyItems":

List<Item> myItems = myService.GetMyItems();

我已经为我的课程"Item.cs"包含了我自己的库

最后我得到错误:

Error   1   Cannot implicitly convert type 'myItems.ServiceReference1.Item[]' to 'System.Collections.Generic.List<myLibrary.Item>'

我的目的是,我可以在Program.cs中使用"listView"的每个属性(在我的情况下:名称、年份、价格)

感谢您提前给出所有答案。

如何使用列表c#返回对象

当您通过服务使用该方法时,它将自动将List<Item>强制转换为基本数据类型Item[]

为了解决这个问题,我看到了两个选项:

  1. 使用var关键字,然后继续使用数据类型Item[]

    var myItems = myService.GetMyItems();
    
  2. 回溯到IEnumerable<Item>:

    var myItems = myService.GetMyItems().ToList();