Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在现有linq查询中包含datatable_C#_Linq - Fatal编程技术网

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具有可比性吗?我看不出这个问题有什么不对