在 select 语句中使用命名元组

2024-04-10

有没有更好的方法使用 var 目标变量在 C# 7 中选择命名元组?我一定是在示例 1 中做错了什么,或者完全误解了某些内容。我似乎必须显式设置目标类型才能执行此操作。

//1. Fails to compile with "incorrect number of type parameters" issue.
var tuples = source.Select<(int A, int B)>(x => (x.A, x.B));

//2. Compiles
IEnumerable<(int A, int B)> tuples = toCheck.Select(x => (x.A, x.B));

//3. Compiles
var tuples = new HashSet<(int A, int B)>(source.Select(x => (x.A, x.B)));

你可以只使用var,但您需要确保元组元素确实被命名。

在 C# 7.0 中,您需要显式执行此操作:

var tuples = source.Select(x => (A: x.A, B: x.B));
foreach (var tuple in tuples)
{
    Console.WriteLine($"{tuple.A} / {tuple.B}");
}

在 C# 7.1 中,当从属性或字段获取元组文字中的值时,该标识符将隐式为元素名称,因此您可以编写:

var tuples = source.Select(x => (x.A, x.B));
foreach (var tuple in tuples)
{
    Console.WriteLine($"{tuple.A} / {tuple.B}");
}

See the 专题文档 https://github.com/dotnet/csharplang/blob/master/proposals/csharp-7.1/infer-tuple-names.md有关兼容性等的更多详细信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 select 语句中使用命名元组 的相关文章

  • 我应该把 try/catch 和“using”语句放在哪里? [复制]

    这个问题在这里已经有答案了 可能的重复 try catch using 正确的语法 https stackoverflow com questions 4590490 try catch using right syntax 我想try c
  • 是否可以从 C++ 应用程序调用 C# 应用程序?

    我是一名编程学生 现在我已经上了两门 C 课程 这个学期我将参加我的第一门 C 课程 出于好奇 是否可以从 C 应用程序调用 C 应用程序 如果是的话 是否还可以检查运行该程序的计算机是否具有 NET框架 我只是很好奇 我想如果可能的话 这
  • c# 从另一个类中的另一个静态事件引发事件

    需要帮助从另一个班级调用事件 我有已声明事件的课程 public class MxPBaseGridView GridView public event AddNewItemsToPopUpMenuEventHandler AddNewIt
  • 锁定 ASP.NET 应用程序变量

    我在 ASP NET 应用程序中使用第三方 Web 服务 对第 3 方 Web 服务的调用必须同步 但 ASP NET 显然是多线程的 并且可能会发出多个页面请求 从而导致对第 3 方 Web 服务的同时调用 对 Web 服务的调用封装在自
  • XPATH 查询、HtmlAgilityPack 和提取文本

    我一直在尝试从名为 tim new 的类中提取链接 我也得到了解决方案 给出了解决方案 片段和必要的信息here https stackoverflow com questions 2982862 extracting a table ro
  • 如果 JSON.NET 中的值为 null 或空格,则防止序列化

    我有一个对象需要以这样的方式序列化 即 null 和 空白 空或只是空格 值都不会序列化 我不控制对象本身 因此无法设置属性 但我知道所有属性都是字符串 环境NullValueHandling显然 忽略 只能让我找到解决方案的一部分 它 似
  • 司机和提供商之间的区别

    数据库中的驱动程序和提供程序有什么区别 有没有解释一下 不胜感激 样本 ADO NET driver for MySQL vs providerName System Data EntityClient 来自 MSDN 论坛 驱动程序是安装
  • while循环中的变量初始化

    我有一个可以分块读取文件的函数 public static DataObject ReadNextFile 数据对象看起来像这样 public DataObject public string Category get set And ot
  • C# 编译器数字文字

    有谁知道 C 编译器数字文字修饰符的完整列表 默认情况下 声明 0 使其成为 Int32 声明 0 0 使其成为 Double 我可以在末尾使用文字修饰符 f 来确保某些内容被视为 Single 例如像这样 var x 0 x is Int
  • 如何在win32中使用GetSaveFileName保存文件?

    我编写此代码是为了获取 fileName 来保存我的文件 include stdafx h include
  • 使用 C# 中的 Google 地图 API 和 SSIS 包获取行驶距离

    更新 找到了谷歌距离矩阵并尝试相应地修改我的代码 我在这里收到无效参数错误 return new GeoLocation dstnc uri ToString catch return new GeoLocation 0 0 https 基
  • 子目录中的头文件(例如 gtk/gtk.h 与 gtk-2.0/gtk/gtk.h)

    我正在尝试使用 GTK 构建一个 hello world 其中包括以下行 include
  • Xamarin - SignalR 挂在连接上

    我正在尝试将我的 Xamarin 应用程序连接到托管在 Azure 上的 SignalR 后端 我遇到的问题是每次我在 HubConnection 上调用 StartAsync 时 它都会挂起客户端并且请求永远不会完成 我尝试通过应用程序进
  • 时间:2019-03-17 标签:c++fstream并发访问

    如果从不同的进程 线程同时访问文件会发生什么 据我所知 没有锁定文件的标准方法 只有操作系统特定的功能 就我而言 文件将被经常读取而很少写入 现在如果A打开一个文件进行读取 ifstream 并开始读取块 和B打开相同的文件进行写入 ofs
  • Resharper:IEnumerable 的可能多重枚举

    我正在使用新的 Resharper 版本 6 在我的代码中的几个地方 它给一些文本加了下划线 并警告我可能存在IEnumerable 可能的多重枚举 我理解这意味着什么 并在适当的情况下采纳了建议 但在某些情况下 我不确定这实际上是一个大问
  • 如何在 C# 中获取 Json 数组?

    我有一个像这样的 Json 字符串 我想将它加载到 C 数组中 当我尝试这样做时 我收到异常 我的字符串 customerInformation customerId 123 CustomerName Age 39 Gender Male
  • 使用 OleDbCommandBuilder 时访问 SQL 语法错误

    我要在 C 中使用 OleDbDataAdapter 在 Access 数据库中插入数据 但收到错误消息INSERT INTO 命令中的语法错误 BackgroundWorker worker new BackgroundWorker Ol
  • 将错误代码映射到 C++ 中的字符串

    将错误代码从枚举映射到字符串的更有效方法是什么 在 C 中 例如 现在我正在做这样的事情 std string ErrorCodeToString enum errorCode switch errorCode case ERROR ONE
  • C 中使用 getrandom 实现随机浮点数

    我试图生成一个介于 0 和 1 之间的随机浮点数 无论是在 0 1 还是 0 1 对我来说都不重要 网上关于此的每个问题似乎都涉及rand 呼叫 播种time NULL 但我希望能够每秒多次调用我的程序 并每次都获得不同的随机数 这引导我找
  • 如何提高环复杂度?

    对于具有大量决策语句 包括 if while for 语句 的方法 循环复杂度会很高 那么我们该如何改进呢 我正在处理一个大项目 我应该减少 CC gt 10 的方法的 CC 并且有很多方法都存在这个问题 下面我将列出一些例如我遇到的问题的

随机推荐

  • 将多个字符列更改为日期

    我有多个字符列 大约 20 个 我想将它们全部更改为日期格式并使用 r 删除时间 我试过了loops mutate and apply 这是仅使用两列的一些示例数据 col1 c 2017 04 01 23 00 00 2017 03 03
  • 从字符串解方程得到 C 的结果

    我想知道是否有人有关于如何做一些听起来很简单但在尝试编程时看起来并不像的事情的信息或经验 这个想法是 给出一个包含方程的字符串 例如 2 x 10 这很简单 但它可能会变得非常复杂 例如 sqrt 54 35 x 2 等等on 程序将返回
  • Count() 和左连接问题

    我在查询时遇到问题 该查询显示商店列表以及与其关联的产品数量 我已经玩左连接等有一段时间了 但没有成功 这些表具有以下结构 商店表包含列 id name 产品表包含列 id name status shop 查询如下 select s na
  • 在 Angular 2 中使用普通 js 代码 (angular-cli)

    我正在努力实施Vanilla Tilt JS 插件 https micku7zu github io vanilla tilt js 在我的项目中 但我什至似乎找不到在我的项目中使用 vanilla js 导入的方法 到目前为止 我已经尝试
  • Windows 7 家庭高级版上的 Visual Studio 2008/2010 和 SQL Server 2008

    在 Windows 7 Home Premium 上使用 VS 2008 2010 和 SQL Server 2008 开发 ASP NET 和 WPF 应用程序是否有任何限制 我知道您可以在 Home Premium 上运行 IIS 7
  • 从程序集文件加载的类型不等于在 .NET Core 中引用时的同一类型

    我拿一个Type 查询其程序集位置 然后从同一地址加载该程序集 并从加载的程序集中查找相同类型的程序集 结果类型不等于原始类型 这是测试用例 TestMethod public void TestTypeLoadingWithFilePat
  • 如何将整数数组划分为偶数和奇数?

    我想对数组进行分区 例如 1 2 3 4 5 6 7 8 第一个分区应保留偶数值 第二个分区应保留奇数值 结果示例 2 4 6 8 1 3 5 7 我设法用内置解决了这个问题两次Array prototype方法 第一个解决方案使用map
  • 根据一列中的不同值获取行

    如何通过不同的值获取行COL2 例如 我有下面的数据框 COL1 COL2 a com 22 b com 45 c com 34 e com 45 f com 56 g com 22 h com 45 我想根据中的唯一值获取行COL2 CO
  • 我需要采取哪些步骤来向我的 blogger/blogspot 博客添加良好的 Java 代码格式? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一系列步骤来将 java 代码格式添加到我的 blogspot 博客 我真的在寻找一个傻瓜指
  • 使用 Firebase 和 S3

    我正在使用 firebase 和 ionic Angular JS 创建一个应用程序 我想知道是否可以使用 amazon s3 来托管照片 并将 url 来自 s3 存储在 firebase 中 并将其提供给用户 我想这样做 因为 fire
  • JavaScript 排序函数如何工作(作为一种算法)? [复制]

    这个问题在这里已经有答案了 JavaScript带参数的排序函数 http www javascriptkit com javatutors arraysort shtml允许传入一个函数 例如 var myarray 25 8 7 41
  • 如何在 Lucene 6 中对数字字段进行排序

    我想根据数字字段对搜索结果进行排序 在下面的示例代码中 我想根据 年龄 字段进行排序 我从使用以下答案开始 如何在 Lucene 6 中对 IntPont 或 LongPoint 字段进行排序 https stackoverflow com
  • 修改framework.jar中的java代码

    我手机上的库存 ROM 与 MVNO 移动虚拟网络运营商 存在问题 基本上这意味着我的数据连接仅在漫游时有效 这是一个已知问题 已在多个 ROM 上得到修复 但我的尚未修复 为了解决这个问题 我想修改framework jar文件的源 sy
  • 如何在 Xcode 5 中重命名项目?

    如何在 Xcode 5 中重命名项目 我需要采取什么步骤 在过去 这始终是一个非常棘手的手动过程 嗯 答案在 Xcode 5 中非常非常简单 在左侧的项目导航器中 缓慢单击 2 次 项目文件名将可编辑 输入新名称 将出现一个带有警告的表 并
  • maven zip uber-jar 和 shell 脚本

    我希望 Maven 能够将由 shade plugin 创建的 uber jar 和 all files 目录中的 shell 脚本结合起来 项目结构如下所示 all files mvn script sh projB shaded jar
  • 在MySql中加入DELETE?如何?

    我有这个 query DELETE FROM classified sql table WHERE classified ad id id AND classified classified id sql table classified
  • 如何在 SQLAlchemy 和 Firebird 中将 Python 列表绑定为自定义查询中的参数?

    环境 我使用 Firebird 数据库和 SQLAlchemy 作为 ORM 包装器 背景 我知道通过使用in 可以通过sales id列出在IN子句并得到结果 我有一个必须使用的用例文本sql Question 这是我的片段 conn e
  • 如何解决 macOS 中的 zsh: command not found: flutterfire 问题?

    我跟着document https firebase flutter dev docs overview using the flutterfire cli在我的 flutter 应用程序中添加 firebase 我收到 1 条警告和消息
  • 悬停时突出显示自定义 QWidgetAction

    我的应用程序有一个QMenuBar与一些QMenus 其中每个都有多个QActions 和子QMenus 大部分的QAction 项目是衍生品QWidgetAction并重新实施QWidgetAction createWidget方法 通常
  • 在 select 语句中使用命名元组

    有没有更好的方法使用 var 目标变量在 C 7 中选择命名元组 我一定是在示例 1 中做错了什么 或者完全误解了某些内容 我似乎必须显式设置目标类型才能执行此操作 1 Fails to compile with incorrect num