C# 在现有linq查询中包含datatable
我有下面这段代码,它根据每个国家给出了我的时区C# 在现有linq查询中包含datatable,c#,linq,C#,Linq,我有下面这段代码,它根据每个国家给出了我的时区 var zones = TzdbDateTimeZoneSource.Default .ZoneLocations .Where(x => x.CountryCode == countryCode) .Select(x => x.Zon
var zones = TzdbDateTimeZoneSource.Default
.ZoneLocations
.Where(x => x.CountryCode == countryCode)
.Select(x => x.ZoneId);
现在,我需要在上面的linq查询中包含datatable,以检查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);
如果我正确理解您的问题,您可以使用
.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))
我不明白这个问题;下面这句话有什么不对?它是否会产生错误?您的最终想法是什么:您是否需要获取数据表中也存在的所有区域(哪个名称是“”,要检查的列名是??)?第一个代码为我提供了特定国家/地区的时区列表,但很少有区域位置在oracle中不起作用,因此,在第二个语句中,我打算筛选oracle支持但未正确筛选的时区,我需要找出在按国家/地区筛选的第一个linq查询中都支持的区域位置在同一linq中包含datatabe只是为了验证包含oracle支持的所有时区的datatable是否存在抱歉,但它没有过滤它仍然显示的时区,而这些时区不在oracleDivide and conquer中。检查
oratznamesoratznames
的内容。您确定[“TZNAME”].ToUpper()
和ZoneId
s具有可比性吗?我看不出这个问题有什么不对