2010-03-02 106 views
3

新增LINQ &想知道为什么错误&最好的解决方法。C# - Linq to SQL,类型转换错误

我得到,'不能隐式转换类型'System.Collections.Generic.IEnumerable'到'System.Collections.Generic.List'。一个显式转换存在(是否缺少强制转换?)”错误

List<string> names = new List<string>(); 
names.Add("audi a2"); 
names.Add("audi a4"); 

List<string> result1 = new List<string>(); 

result1=(from name in names 
     where name.Contains("a2") 
     select name); 

回答

6

的从结果是一个IEnumerable,你需要创建一个列表来保存它。

result1=(from name in names 
        where name.Contains("a2") 
        select name).ToList(); 

所以可以简单:在你的LINQ查询月底.ToList()

List<string> result1 = (from name in names 
           where name.Contains("a2") 
           select name).ToList(); 
+0

啊,很漂亮,谢谢你。 – SoftwareGeek 2010-03-02 23:31:01

3

投掷。

result1=(from name in names 
    where name.Contains("a2") 
    select name).ToList(); 
1

或者使用LINQ的函数语法:

result1 = names.where(x => x.Contains("a2")).ToList(); 
+0

你是否把它看作'x去name.contains ...'? – SoftwareGeek 2010-03-02 23:30:18

+2

阅读它作为在哪里(为每个项目(x)的名称运行测试x.Contains(...) – 2010-03-02 23:33:54

+0

@preet - 看到你的个人资料,很有幽默感! – SoftwareGeek 2010-03-02 23:38:39