Linq 从另一个集合中查找集合中的所有项目
Linq Find all items in collection from an other collection
我有一个枚举集合
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。
谢谢
试试这个:
myObjects.Where(m => m.MyEnums.Intersect(myEnums).Any())
;
试试这个:
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();
}
}
}
我有一个枚举集合
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。 谢谢
试试这个:
myObjects.Where(m => m.MyEnums.Intersect(myEnums).Any())
;
试试这个:
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();
}
}
}