问题标签 [valuetuple]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 如何动态创建 .NET C# ValueType 元组?
我想从一组值动态创建一个值类型元组。
示例:我有一个给定的IEnumerable<T>
,我想基于该集合创建一个元组。
我怎样才能做到这一点?
似乎可以动态实现值类型元组内的访问,但没有任何迹象表明可以对值类型元组的创建进行相同的操作。
我的目的是利用本文中描述的此类元组的 Equality 和 HashCode 的属性
c# - 传递 ValueTuple 而不是参数
是否可以这样做(或者我可能需要特定版本的 C#)?
更新:我的意思是传递元组而不是单独的参数。
c# - 为什么 ValueTuple 不能是 const?
声明为字段的 ValueTuple 类型可以是可变的:
或只读:
这种(im)可变性适用于每个成员。我希望它也可以扩展到 const 声明:
但是这个语句不编译。在某些情况下它是一个不受欢迎的功能,还是只是没有实现?
编辑 好的,我现在明白了。我的问题是基于 C# 编译器对待 ValueTuples 不同于其他类型的假设,关于关键字 readonly。所以,如果它已经是一个例外,为什么不为 consts 再做一个例外。但是,事实上,这个逻辑似乎适用于所有结构。所以这不起作用:
.net - ValueTuples 可以与 .net 4.5.2 一起使用吗?
我有一个针对 .net 框架 4.52 的 MVC 5 项目,我通过 Nuget 安装了 System.ValueTuple。我在 Windows 7 上使用 Visual Studio 2017。在开发过程中,Visual Studio 不会抱怨 Tuple 返回类型,但是当我构建时出现一系列错误:
这是破坏的方法:
我不知道如何解决这个问题,只是认为它与我的框架版本不兼容。几项广泛的在线搜索对此一无所知。
c# - 从 ref 变量中解构元组
我有以下方法。
以下代码工作正常:
但我需要使用该ref
功能。以下代码也有效:
现在我想解构元组。以下代码将无法编译:
是否可以解构ref
变量?
c# - 使用带有值类型元组的 `is` 运算符会出错
我正在尝试检查object
变量是否存在(int, int)
,如果是,我将使用强制转换的变量,因此我尝试了以下代码:
该MyMethodWithIs
方法在编辑器中给出以下错误:
没有找到适合类型的解构实例或扩展方法
我的问题
为什么一个工作正常,但另一个完全出错?我认为MyMethodWithIs
更具可读性并且更适合用于我的案例,但由于出现错误,我无法使用它。
c# - valuetuple 不适用于我的 4.7.2 项目之一
我在解决方案中有多个项目,都针对 4.7.2。然后我在一个返回 valueTuple 的 lib 项目中添加一个方法。多个项目调用此方法,除一个项目外,所有项目都可以正常(编译)。这一项目产生编译器错误。
我已经将这个项目中的所有 nugets pkgs 与其他项目进行了比较,差异很小,然后我取消了那些不同的 nugets,仍然是相同的错误。我四处搜索,知道 4.7 已经内置了 valuetuple,然后我检查了这个项目,它没有System.ValueTuple
任何地方的 nuget 或硬编码 System.ValueTuple.dll。
请帮忙。我总是可以回到 Tuple<> 方式,但 valuetuple 更干净。除非你告诉我还有更多隐藏的问题。
谢谢!
导致错误的行:
就是这样,编译器抱怨在返回的元组中找不到项目。我在这里列出了编译器错误,它抱怨 valuetuple 中的第一项“CreatedUsers”。实际上,每个其他值元组项“ErrorMsgsA”、ErrorMsgsB 都有一个编译器错误。请记住,我在这个 valuetuple 中引用项目的其他项目都很好,没有错误。
c# - 值元组从 WebAPI 公开错误的参数名称
我正在使用网络 API。我有点懒,决定从我的控制器返回一个值元组。
JSON 响应似乎没有使用适当的命名,这是被优化了吗?
注意:我知道我可以明确地制作一个模型来避免这个问题。我想了解正在发生的事情,为什么我的值元组名称在响应中没有得到尊重?
c# - 初始化 ValueTuple 数组的最佳方法
我已经做了一个初始化ValueTuples数组的扩展方法,并意识到它可以通过两种不同的方式完成。我可以用新元组替换数组元素,或者更改现有元素的属性(因为ValueTuple<T1, T2>
结构是可变的)。我想知道使用一种方法或另一种方法之间是否有任何实际区别。以下是候选人: