用于单独对象的 LINQ Compund FROM 子句

问题描述

YouTube 上或多或少(2020 年 1 月)有一段视频,解释了如何在 LINQ 中使用复合 where 子句。在此示例中,where 使用了两次,但用于不相关的对象。当我在 Visual Studio 2017 中(在 Program.cs 文件中)尝试此操作时,出现错误:

Error: Predefined type 'System.ValueTuple`2' is not defined or imported

之前我收到了关于 foreach 子句的错误。

示例在这里: https://www.youtube.com/watch?v=uUsnDXYRADA&t=263s ,如下所示: int[] numbersA = {0,2,4,5,6,8,9}; int[] numbersB = {1,3,7,8};

var pairs = from a in numbersA
            from b in numbersB
            where a < b
            select (a,b);

Console.WriteLine("Pairs where a < b:");
foreach (var pair in pairs)
{
    Console.WriteLine($"{pair.a} is less than {pair.b}");
}

我有 VS Professional 2017,带有 ASP.NET Web 框架和工具 5.2.6、Core Razor 15.8、C# 工具 2.10 LINQ 在系统中有效,但此查询无效。

解决方法

这与 Linq 无关,您返回的是 Tuple 类型,您当前的框架版本不支持它。 .Net Framework 4.7+ 支持 Tuple。如果您升级项目以使用更高的框架版本 (4.7+),则代码将起作用。

More Information

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...