Если вы собираетесь делать это в различных ситуациях, вам, вероятно, следует использовать:
private static readonly HashSet<string> AllTimeZoneIds =
new HashSet<string>(TimeZoneInfo.GetSystemTimeZones()
.Select(tz => tz.Id));
Тогда вы можете просто использовать:
if (AllTimeZoneIds.Contains(timeZoneId))
Нет необходимости использовать LINQ дляитерируйте по всему списку часовых поясов каждый раз, когда хэш-набор может просто выполнить поиск O (1).
Если вам просто интересно использовать Any
, это будет:
if (AllTimeZoneIds.Select(tz => tz.Id).Contains(timeZoneid))
или
if (AllTimeZoneIds.Any(tz => tz.Id == timeZoneid))
Обратите внимание, что «идентификатор часового пояса» является довольно неясным понятием.Это проверит, действительно ли это .NET идентификатор часового пояса.Если вы на самом деле получаете часовые пояса, такие как «Европа / Лондон», это другое дело.