2012-08-03 86 views
0

下午,无法隐式转换类型列出<string>

我收到以下错误,并不能明白为什么...可以有人请看看,让我知道我要去的地方错了。

不能键入“System.Collections.Generic.List”隐式转换为“System.Collections.Generic.List”

下面

是什么,我尝试使用,以得到一个列表等等我可以在亚马逊上使用它。我试图删除.ToList()位,但似乎没有任何工作。我打电话的MS SQL视图“GetASINForUpdateLowPrices”,它返回一个列表返回产品的ASIN的

List<string> prodASINs = dc.GetASINForUpdateLowPrices.ToList(); 

SQL为我使用的观点,这可能有助于一点点。

SELECT  asin 
FROM   dbo.aboProducts 
WHERE  (asin NOT IN 
      (SELECT  aboProducts_1.asin 
      FROM  dbo.aboProducts AS aboProducts_1 INNER JOIN 
         dbo.LowestPrices ON aboProducts_1.asin = dbo.LowestPrices.productAsin 
      WHERE  (dbo.LowestPrices.priceDate >= DATEADD(day, - 1, GETDATE())))) 
+0

您需要初始化列表? – 2012-08-03 12:21:13

+0

是啊亚马逊MWS需要它在这种格式*叹息* – thatuxguy 2012-08-03 12:23:05

回答

0

当你打电话给你GetASINForUpdateLowPrices,它不会直接返回List<string>即使只有一个在你的视野。请尝试以下方法:

List<string> prodASINs = dc.GetASINForUpdateLowPrices 
         .Select(item => item.AsinFieldName) 
         .ToList(); 

Visual Studio的智能感知应键入item.后,建议你的属性名称。如果属性不是字符串,请尝试在属性名称的末尾添加.ToString()。

编辑:您的评论后,似乎你需要使用它作为.Select(item => item.asin.ToString())

+0

添加了我的SQL查看... – thatuxguy 2012-08-03 12:26:33

+0

补充说,我使用该视图的原因是由于SQL的写法:) – thatuxguy 2012-08-03 12:28:50

+0

请参阅我的编辑请让我知道它是否工作:) – 2012-08-03 12:29:32

1

哪些数据类型是单ASIN?可能您的GetASINForUpdateLowPrices不是IEnumerable<string>。试试这个确认:

List<string> prodASINs = dc.GetASINForUpdateLowPrices 
          .Select(e => e.ToString()) 
          .ToList(); 
+0

酷这工作很好:) – thatuxguy 2012-08-03 12:34:03

0

只要使用var。

var prodASINs = dc.GetASINForUpdateLowPrices.ToList(); 
+1

这当然会工作,但如果代码后期预计'prodASINs'类型'列表'它不会工作。 – Yuck 2012-08-03 12:22:54

+0

他可以找出它返回的内容并根据需要进行转换。 – 2012-08-03 12:28:57

+1

不能使用var,因为亚马逊代码不会接受该代码。因此,为什么我使用列表作为他们所要求的 – thatuxguy 2012-08-03 12:30:14

0

您确定GetASINForUpdateLowPrices.ToList()创建了一个字符串列表吗?我最好的估计是它是一个不同类型的通用列表。

要弄清楚发生了什么 - 将List<string> prodASINS更改为Object obj。然后通过使用调试器检出对象来设置断点,以查看ToList()代码实际生成的List类型。然后,您可以更新您的代码,将这些值移动到适当类型的列表中。

您可能需要投这样转让的右侧,最终完成任务(与其他类型替换字符串,如果必要的话) - List<string> prodASINs =(List<string>)dc.GetASINForUpdateLowPrices.ToList()

相关问题