【问题标题】:Linq Find all items in collection from an other collectionLinq 从其他集合中查找集合中的所有项目
【发布时间】:2017-10-01 12:40:19
【问题描述】:

我有一个枚举集合

    List<MyEnum> myEnums = new List<MyEnum>{MyEnum.Item1, MyEnum.Item2}

我有一个对象集合

List<MyObject> myObjects = MyObjects.GetMyObjects ();

MyObject 有一个属性是 MyEnum 的列表

myObjects[0].MyEnums  /* contain {MyEnum.Item1, MyEnum.Item5, MyEnum.Item6} */

我想查找属性 myObject.MyEnums 包含 MyEnum.Item1 或 MyEnum.Item2 (myEnums) 的所有 myObjects。 谢谢

【问题讨论】:

  • 你尝试了什么?

标签: c# linq collections find contain


【解决方案1】:

试试这个: myObjects.Where(m =&gt; m.MyEnums.Intersect(myEnums).Any());

【讨论】:

    【解决方案2】:

    试试这个:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ConsoleApplication2
    {
        public class Program
        {
            public enum MyEnum { Item1, Item2, Item3 }
            public class MyObject
            {
                public List<MyEnum> myEnums;
                public MyObject(List<MyEnum> myEnums)
                {
                    this.myEnums = myEnums;
                }
            }
    
    
            static void Main(string[] args)
            {
                List<MyEnum> myEnums1 = new List<MyEnum> { MyEnum.Item1, MyEnum.Item2 };
                List<MyEnum> myEnums2 = new List<MyEnum> { MyEnum.Item1 };
                List<MyEnum> myEnums3 = new List<MyEnum> { MyEnum.Item3 };
    
                List<MyObject> myObjects = new List<MyObject>();
    
                myObjects.Add(new MyObject(myEnums1));
                myObjects.Add(new MyObject(myEnums2));
                myObjects.Add(new MyObject(myEnums3));
    
    
    
                List<MyEnum> myEnumsFind = new List<MyEnum> { MyEnum.Item1, MyEnum.Item2 };
    
                var result = myObjects.Where(x => myEnumsFind.Any(y => x.myEnums.Contains(y))).ToList();
    
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多