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

本文关键字:包含 数据表 查询 linq | 更新日期: 2023-09-27 18:36:44

我有以下一段代码,它根据每个国家/地区给出了我的时区

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);

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

id 我理解你的问题是正确的,你可以使用 .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))