使用Except扩展方法时出现问题

时间:2012-05-10 09:11:30

标签: linq c#-4.0

下面的代码有什么问题?

var newContextElementCollection = new List<NewContextElements>();  
var res = from eleCollection in newContextElementCollection                     
          where eleCollection.Property.Except(new List<string> { "Password", "Some Other Value" })
          select eleCollection;

NewContextElementCollection类:

public class NewContextElements
{
    public string Property { get; set; }    
    public string Value { get; set; }
}

我收到此错误:

  

实例参数:无法从'string'转换为   'System.Linq.IQueryable'   错误2'字符串'不包含“除外”的定义和最佳扩展名    方法重载'System.Linq.Queryable.Except(System.Linq.IQueryable,

     

System.Collections.Generic.IEnumerable)'有一些无效的参数

2 个答案:

答案 0 :(得分:0)

Property是一个字符串,而不是IEnumerable<string>,这是您的Except子句可以使用的。

var res= from eleCollection in newContextElementCollection
     where eleCollection.Property !=  "Password"
     select eleCollection;

答案 1 :(得分:0)

var excluded = new List<string> { "Password","Some Other Value" };
var res = newContextElementCollection.Where(m => !excluded.Contains(m.Property));