LinQ WHERE string.Contains lub string.IndexOf?

Muszę napisać coś, co dałoby taki sam wynik jak:

var result = collection.Where( o => o.Name.IndexOf( "some_string2" ) != -1 || o.Name.IndexOf( "some_string_2" ) != -1 || o.Name.IndexOf( "some_string3" ) != -1 )

Gdzie ilość i wartości ciągów do sprawdzenia (some_string_1, 2 i 3) są nieznane (pochodzące z DB), więc coś bardziej ogólnego ...

Próbowałem, ale nie udało się ...

var stringsToCheck = someCommaSeparatedStrings.ToLower().Split( ',' ).ToList();
var result = collection.Where( o => stringsToCheck.Contains( o.ToLower() ) );

Innymi słowy, muszę pobrać wszystkie obiekty z kolekcji, których nazwy zawierają określone ciągi.

questionAnswers(4)

yourAnswerToTheQuestion