根据IEnumerable,String&gt; </t>过滤IEnumerable <t>

时间:2014-11-10 03:43:06

标签: c# linq collections ienumerable

您好我有以下代码和问题是我想这样一个选择或基于过滤器的地方,但过滤器是IEnumerable我错过了linq来完成查询。我想要所有classB,其中ClassB.MyType包含在过滤器中。提前致谢

 public class EntryPoint
    {
        public IEnumerable<ClassB> FilterClass(IEnumerable<string> filter)
        {
            var myClass = new MyClass(); // populate with values

            return myClass.Values.Where(x => x.MyType == filter//??));
        }
    }

    public class MyClass
    {
        public IEnumerable<ClassB> Values { get; set; }
    }

    public class ClassB
    {
        public string MyType { get; set; }

        public string MyValue { get; set; }
    }

3 个答案:

答案 0 :(得分:0)

尝试使用Enumerable.Contains

return myClass.Values.Where(x => filter.Contains(x.MyType));

然而,这可以比较参考平等 - 也考虑以下备选

return myClass.Values.Where(x => filter.Any(f => x.MyType.Equals(f)));

答案 1 :(得分:0)

肯定是

return myClass.Values.Where(x => filter.Any(f => f == x.MyType));

答案 2 :(得分:0)

试试这个

return myClass.Values.Where(x =>filter.Contains(x.MyType));