none
LinQ: from XX in this 的时报错。 RRS feed

  • 问题

  • class MyList : List<string>
    {
    
     public void someMethod()
     {
    
       Iemurable<string> rst = from string crrStr
                         in this //编译器在这里报错.提示很长,无法读懂.难道不支持in this语法? 
                             //如果写成foreach( string crrStr in this) 的时候没有报错
                  where crrStr=="XX"
                         select crrStr;
    
     }//someMethod()
    
    }//class
    
    
    
    
    2011年2月6日 15:28

答案

  • 最后的办法是 将Linq语句改写成Foreach循环。 只能说是躲过了这个问题而已,没有从实质上解决。
    最近信了奎爷!
    2011年2月18日 6:51

全部回复

  •  

    你好,你的代码在我这里运行正常(VS2008),不过,我把Iemurable改成了IEnumerable:

     

                IEnumerable<string> rst = from string crrStr in this

                                        where crrStr == "XX"

                                        select crrStr;


    Eric Yang [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年2月7日 8:09
  •  

    你好,你的代码在我这里运行正常(VS2008),不过,我把Iemurable改成了IEnumerable:

     

                IEnumerable<string> rst = from string crrStr in this

                                        where crrStr == "XX"

                                        select crrStr;


    Eric Yang [MSFT]
    MSDN Community Support | Feedback to us


    你用的是什么版本VS?   我是VS2010 无 SP1

    系统报错信息如下:Could not find an implementation of the query pattern for source type ‘MyList'.  'Cast' not found.  Are you missing a reference to 'System.Core.dll' or a using directive for 'System.Linq'? 

    2011年2月7日 8:22
  • 试试重新添加一下对System.Core.dll的引用
    本帖内容仅供参考,没有任何保证. This post is provided without any warranty.
    • 已标记为答案 Paul Zhou 2011年2月18日 5:28
    • 取消答案标记 Charles Shao 2011年2月18日 6:50
    2011年2月7日 11:55
    版主
  • 你好,请问你的问题解决了吗,我将标记答复了,如果回复没能解决你的问题,你可以取消标记,谢谢理解。
    Paul Zhou [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年2月18日 5:28
  • 最后的办法是 将Linq语句改写成Foreach循环。 只能说是躲过了这个问题而已,没有从实质上解决。
    最近信了奎爷!
    2011年2月18日 6:51
  • 请参考以下方法尝试: 1、添加命名空间引用 using System.Linq。 2、把查询表达式改为扩展方法。例如,把 from string myString in this 改成 this.Select(i => i)。
    Mark Zhou
    2011年2月18日 7:44