问题标签 [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.

0 投票
3 回答
258 浏览

c#-7.0 - ValueTuple:创建八元组有什么问题?

ValueTuple 作为 C# 7.0 中的一个新特性,它具有Create有助于创建 ValueTuple(来自singleton to octuple或更多)的公共方法,另一方面,我们也可以使用它new来实现相同的结果。我注意到这些行为不同。我正在尝试研究以下实现错误,或者这是按照设计:

方法CreateOctuple()按预期工作:

现在,我尝试使用Create()方法实现相同的输出,不幸的是,它抱怨返回类型:

这里有什么问题? 在此处输入图像描述

PS 所有软件包都是最新的,我使用的是 Visual Studio 2017 最新版本。 在此处输入图像描述

正如斯维克所建议的那样

这会提示相同的编译器异常: 在此处输入图像描述

0 投票
4 回答
40293 浏览

c# - 如何创建 ValueTuple 列表?

是否可以在 C# 7 中创建 ValueTuple 列表?

像这样:

0 投票
4 回答
4407 浏览

c# - 是否可以在 View 中使用 ValueTuple 作为模型?

是否可以在 ASP.NET Core MVC 的视图中使用值元组作为模型类型?我的意思是这样的:

控制器:

看法:

但是,使用此设置,在呈现页面时会引发异常。我正在使用安装了 System.ValueTuple NuGet 包的 .NET 4.6.2。

在此处输入图像描述

0 投票
1 回答
2205 浏览

wpf - 带有 WPF 绑定的 ValueTuple

为什么绑定到ValueTuple属性成员(如 Item1、Item2 等)不起作用?

编码:

输出窗口:

BindingExpression 路径错误:在“对象”“ValueTuple`2”上找不到“Item1”属性

但是在Tuple它总是有效的。

0 投票
11 回答
33333 浏览

c# - 何时使用:C# 7.0 中的元组与类

在元组之前,我曾经创建一个类及其变量,然后从这个类创建对象,并使该对象成为某些函数的返回类型。

现在,使用元组,我可以做同样的事情,在 C# 7.0 中,我们可以为元组属性分配易于理解的名称(在此之前,它是item1,item2等)

所以现在我想知道,我什么时候使用元组,什么时候在 C# 7.0 中创建一个类?

0 投票
2 回答
1748 浏览

c# - C# 7 中的 C# 匿名类型是多余的吗

由于 C# 7 引入了值元组,是否存在比元组更适合它们的有意义的场景?

例如,以下行

使以下行

多余的。

一个比另一个更好使用的用例(出于性能原因或优化)会是什么用例?

显然,如果需要超过六个字段,则不能使用元组,但是有什么更细微的地方吗?

0 投票
2 回答
1186 浏览

tuples - C# 7.0 中的元组文字可以启用面向方面的编程吗

我指的是此处描述的元组文字:https ://blogs.msdn.microsoft.com/dotnet/2016/08/24/whats-new-in-csharp-7-0/#comment-321926

喜欢元组文字的想法。

但是我预见到很多查找返回元组中项目的顺序,并且想知道我们如何解决这个问题。

例如,将元组中的项目名称作为身份定义方面而不是顺序不是更有意义吗?或者有没有办法做到这一点,我没有看到?

例如:假设 NextEmployee() 是一些我没有源代码的库方法,也没有特别好的文档记录,假设它返回(firstname: “jamie”, lastname: “hince”, id: 102348)给我,我说:

编译器要么愉快地将名字分配给姓氏,要么发出警告或错误。为什么不将姓氏映射到姓氏?

我会看到允许更松散耦合的架构,如果我们不必记住元组中姓氏的索引,并且可以只要求这样的“姓氏”方面。

0 投票
1 回答
1347 浏览

c# - Caliburn.Micro - 将 ValueTuple 的 ObservableCollection 绑定到 ComboBox

我正在尝试使用 Caliburn.Micro 框架 MVVM 将 ValueTuples 的 ObservableCollection 绑定到 WPF 中的 ComboBox。当我在 ViewModel 中这样做时:

在 XAML 视图中:

它起作用了,ComboBox 用第一个字符串填充。但是当我尝试使用 C# 7 并更改为:

当我不更改 XAML 时它不起作用 - 它显示空列表。DisplayMemberPath="name"当我更改为- 相同的空列表时它不起作用。当我删除它时它不能正常工作DisplayMemberPath- 它显示整个列表但两个字符串连接在一起。如何使用 ValueTuples 做到这一点?

0 投票
1 回答
1892 浏览

c# - ValueTuple 不支持 DisplayMemberPath。组合框,WPF

我有一个组合框,想将它的 ItemsSource 绑定到一个IEnumerable<(string,string)>. 如果我没有设置 DisplayMemberPath,那么它会起作用,并且它会在下拉区域中显示调用ToString()项目的结果。不过,当我设置DisplayMemberPath="Item1"它时,它不再显示任何内容。我制作了以下示例,您可能会在其中看到,如果我使用经典Tuple类型,它会按预期工作。

调试时,我检查了 valuetuple 也有 Item1 和 Item2 作为属性。

我的 XAML:

我的代码隐藏:

在运行时,此示例将在第一个组合框中正确显示数据,但在第二个组合框中不会显示任何内容。

为什么会这样?

0 投票
2 回答
328 浏览

c# - 值元组类型模式

我正在尝试在 C# 7 中针对元组类型使用类型模式:

但编译器给了我以下错误:

无效的表达式术语“字符串”需要一个常量值

我该如何解决这个问题?


注意我知道我可以使用:

但我想知道是否有更好的语法。