/// <summary> /// Finds the best match for a song. /// </summary> /// <param name="songs"></param> /// <param name="artists"></param> /// <returns></returns> private Song FindMatch(Song[] songs, IEnumerable<Artist> artists) { if (songs.Length == 0) return null; if (songs.Length == 1) return songs.First(); var match = songs.FirstOrDefault(s => s.Artists.Any(a => a.Artist != null && a.Artist.ArtistType != ArtistType.Vocaloid && artists.Any(a2 => a.Artist.Equals(a2)))); return match ?? songs.First(); }