2014-11-09 14 views
1

我有類Item.cs,我想從我的基地List<Item>返回的所有項目,....如何使用列表C#返回對象

所以這裏是從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的」

所以在Program.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控件」

對於所有的答案提前謝謝。

+0

你有'Item'類分別在兩個地方定義的? (比如,與GetMyItems()相同的項目中有一個文件,然後是與「Program.cs」相同的項目中的另一個文件?) – 2014-11-09 01:18:38

+0

編號我在這個類中使用我自己的庫。 – 2014-11-09 01:49:50

回答

0

當您通過服務使用該方法時,它會自動將List<Item>轉換爲基本數據類型Item[]

要解決這一點,我看到兩個選項:

  1. 使用var關鍵字,並繼續使用的數據類型Item[]

    var myItems = myService.GetMyItems(); 
    
  2. 轉換回IEnumerable<Item>

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

program.c中的call函數怎麼樣? – 2014-11-09 01:31:44

+0

好的問題,我認爲,當您將該方法作爲服務調用時,列表被轉換爲基本類型Item []。我會改變我的例子,使其更簡單。 – 2014-11-09 01:48:27

+0

好的,這個工程。非常非常感謝你 :) – 2014-11-09 09:56:24

相關問題