比较数组LINQ

时间:2018-06-01 22:40:33

标签: c# linq

如何与linq中的数组进行比较并获取至少有一个交集的所有元素? 例如:

selectes = {1,5,7} 
Bands[0].SongsID {1,9} 
Bands[1].SongsID {5,6}
Bands[2].SongsID {4,6}

我需要选择Bands[0]Bands[1]。 我试过这个:

var selectes2 = Bands.Where(t => t.SongsID.Intersect(selectes));

乐队班:

public class Band
{
    public int ID                { get; set; }
    public string Name           { get; set; }
    public DateTime YearOfCreate { get; set; }
    public string Country        { get; set; }
    public int[] SongsID         { get; set; }
}

2 个答案:

答案 0 :(得分:5)

var selectes2 = Bands.Where(t => t.SongsID.Intersect(selectes).Any());

答案 1 :(得分:1)

假设您要选择任何具有与您的ID列表匹配的歌曲ID的乐队,您可以通过以下方式实现:

var matchingBands = Bands.Where(band => band.SongsID.Any(selectes.Contains));