在现有的linq查询中包含数据表

时间:2015-01-07 10:00:22

标签: c# linq

我有下面的代码,根据每个国家/地区提供我的时区

var zones = TzdbDateTimeZoneSource.Default
                                  .ZoneLocations
                                  .Where(x => x.CountryCode == countryCode)
                                  .Select(x => x.ZoneId);

现在我需要在上面的linq查询中包含datatable,以检查数据表是否已在数据库中具有区域位置,如下面的代码所述。我该怎么做?

var zones = TzdbDateTimeZoneSource.Default
                                  .ZoneLocations
                                  .Where(x => x.CountryCode == countryCode && 
            oratznamesoratznames.Select().ToList()
            .Exists(row => row["TZNAME"].ToString().ToUpper() == x.ZoneId))
                                  .Select(x => x.ZoneId);

1 个答案:

答案 0 :(得分:0)

我知道您的问题是正确的,您可以使用.Any()。它返回一个布尔值,指示集合中的任何元素与谓词匹配的位置。

另请注意,在这种情况下无需使用&&

var zones = TzdbDateTimeZoneSource.Default
                              .ZoneLocations
                              .Where(x => x.CountryCode == countryCode)
                              .Select(x => x.ZoneId)
                              .Where(x => oratznamesoratznames
                                  .Any(r => r["TZNAME"].ToString().ToUpper() == x))