Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当列表中的列表包含类的这些对象时,如何获得对象的交集?_C#_List_Comparison_Ienumerable_Intersection - Fatal编程技术网

C# 当列表中的列表包含类的这些对象时,如何获得对象的交集?

C# 当列表中的列表包含类的这些对象时,如何获得对象的交集?,c#,list,comparison,ienumerable,intersection,C#,List,Comparison,Ienumerable,Intersection,我的名单: List<ArtistAndTags> List1 = new List<ArtistAndTags>(); //Contains about 100 elements. List<ArtistAndTags> List2 = new List<ArtistAndTags>(); //Contains about 70 elements. List List1=新列表()//包含大约100个元素。 List List2=新列表()//

我的名单:

List<ArtistAndTags> List1 = new List<ArtistAndTags>(); //Contains about 100 elements.
List<ArtistAndTags> List2 = new List<ArtistAndTags>(); //Contains about 70 elements.
List List1=新列表()//包含大约100个元素。
List List2=新列表()//包含大约70个元素。
我的班级:

public class ArtistAndTags
   {
       public string ArtistName { get; set; }
       public List<string> Tags = new List<string>(); //Compare with this list.
   }
公共类标签
{
公共字符串ArtistName{get;set;}
public List Tags=new List();//与此列表进行比较。
}
我应该在
ArtistAndTags
列表之间获取每个
ArtistAndTags
ArtistName
,这些列表包含
标记中任何元素的交集

列表列表1=新列表();
        List<ArtistAndTags> List1 = new List<ArtistAndTags>(); 
        List<ArtistAndTags> List2 = new List<ArtistAndTags>();

        var intersectedList = new List<ArtistAndTags>();

        foreach (var item1 in List1)
        {
            foreach (var item2 in List2)
            {
                if (item2.Tags.Intersect(item1.Tags).Any()))
                {
                    intersectedList.Add(item1);
                    intersectedList.Add(item2);
                }
            }
        }

        var result = intersectedList.Select(x => x.ArtistName).ToList();
List List2=新列表(); var intersectedList=新列表(); foreach(列表1中的变量项1) { foreach(列表2中的变量项2) { if(item2.Tags.Intersect(item1.Tags.Any()) { 交叉列表。添加(第1项); 交叉列表。添加(第2项); } } } var result=intersectedList.Select(x=>x.ArtistName.ToList();
非常感谢!所以我已经用
foreach
解决了这个问题,但是你的
Select(x=>x.ArtistName)
确实帮助了我。