繁体   English   中英

如何获得对象的交集,因为列表中的列表包含此类的对象?

[英]How to get intersection of objects as lists in lists contain these objects of class?

我的清单:

List<ArtistAndTags> List1 = new List<ArtistAndTags>(); //Contains about 100 elements.
List<ArtistAndTags> List2 = new List<ArtistAndTags>(); //Contains about 70 elements.

我的课:

public class ArtistAndTags
   {
       public string ArtistName { get; set; }
       public List<string> Tags = new List<string>(); //Compare with this list.
   }

我应该得到ArtistName每个ArtistAndTags之间ArtistAndTags包含任何元素的交集列表Tags

        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();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM