2012-04-04 56 views
0

在此c#代碼中,我需要將userName值從字符串轉換爲int類型。 有誰知道請幫助我。我有一個編譯錯誤錯誤「無法將lambda表達式轉換爲'int'類型,因爲它不是」委託類型「,就像這樣。無法將lambda表達式轉換爲類型'int',因爲它不是委託類型

 ShoppingCartPartRecord cartRecord = null; 
     try { 
      cartRecord = _shoppingCartRepository.Get(r => r.Username == userName); 
     } 
     catch (InvalidOperationException ex) { 
      if (ex.Message == "Sequence contains more than one element") { 
       var badCarts = _shoppingCartRepository.Table.Where(x => x.Username == userName); 
       foreach (var shoppingCartPartRecord in badCarts) { 
        _shoppingCartRepository.Delete(shoppingCartPartRecord); 
       } 
      } 
     } 

在此先感謝您。

+1

什麼是'_shoppingCartRepository'類型,我猜Get方法需要一個int。你需要'_shoppingCartRepository.Table.First(r => r.Username == userName)'? – 2012-04-04 08:47:10

+0

什麼是Get?這是_shoppingCartRepository的一種方法嗎? – Habib 2012-04-04 08:50:38

+0

是的,我需要將int方法分配給Get方法。但是這不起作用。 – Leo 2012-04-04 08:53:12

回答

1

如果沒有源代碼庫,我們只能猜測這些方法是幹什麼的。

從你所描述的get函數中的錯誤期待或者索引到一個數組或一個整數主鍵,所以是錯誤的函數

您應該可以修改代碼如下,以達到預期的效果

ShoppingCartPartRecord cartRecord = null; 
    try { 
     cartRecord = _shoppingCartRepository.Table.Single(r => r.Username == userName); 
    } 
    catch (InvalidOperationException ex) { 
     if (ex.Message == "Sequence contains more than one element") { 
      var badCarts = _shoppingCartRepository.Table.Where(x => x.Username == userName); 
      foreach (var shoppingCartPartRecord in badCarts) { 
       _shoppingCartRepository.Delete(shoppingCartPartRecord); 
      } 
     } 
    } 
相關問題