筛选IEnumerable<;T>;基于IEnumerable,字符串>;

本文关键字:gt IEnumerable 字符串 基于 lt 筛选 | 更新日期: 2023-09-27 18:29:59

嗨,我有下面的代码,问题是我想要一个基于过滤器的select或where,但过滤器是IEnumerable,我缺少linq来完成查询。我想要过滤器中包含classB.MyType的所有classB。提前感谢

 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; }
    }

筛选IEnumerable<;T>;基于IEnumerable,字符串>;

尝试使用Enumerable。包含

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

然而,这可能会比较参考相等性——也可以考虑以下替代

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

肯定有类似的东西

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

尝试这个

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