Tag: 元组

C#2008中的元组出错

我在C#2010中创建了一个程序,我的代码包含一个元组,但当我将我的程序放入C#2008时,它无法识别它,并且出现了以下错误: “The type of namespace name ‘Tuple’ could not be found” 所以我不知道如何使这项工作,这是发生错误的代码行: private List<Tuple> lines = new List<Tuple>(); 请帮忙。 编辑 基本上这是我的代码,由于错误,目前无法编译: public partial class Form1 : Form { private bool isMoving = false; private Point mouseDownPosition = Point.Empty; private Point mouseMovePosition = Point.Empty; private List<Tuple> lines = new List<Tuple>(); public Form1() { InitializeComponent(); } private […]

VS 2017中的元组语法

在VS2017 RC中,当您尝试使用新的元组语法时,您收到以下错误: CS8179未定义或导入预定义类型’System.ValueTuple`X’ 为了使用元组语法,您必须手动将ValueTuple nuget包导入项目中。 没什么大不了的,因为它是预发布版本,我认为它将在RTM中更改,因此它将默认启用。 不幸的是,在最终版本中仍然如此,您必须为每个项目下载nuget包以使用元组语法。 有没有办法默认为每个项目启用元组语法?

在C#中使用一对(三重等)值作为一个值的最佳方法是什么?

也就是说,我想要一个价值元组。 我心中的用例: Dictionary<Pair, object> 要么 Dictionary<Triple, object> 是否有像Pair或Triple这样的内置类型? 或者实施它的最佳方式是什么? 更新答案中描述了一些通用元组实现,但对于在字典中用作键的元组,您应该另外validation哈希码的正确计算。 在另一个问题中有关于此的更多信息。 更新2我想也值得提醒一下,当你在字典中使用某个值作为键时,它应该是不可变的。

在C#中查找和删除元组列表中的重复项

我需要从元组列表中查找并删除重复项。 基本上,我的结构是这样的: List<Tuple> myList = new List<Tuple>(); **** private void FillStructure() { myList.Add(Tuple.Create(“A”, “B”)); myList.Add(Tuple.Create(“A”, “C”)); myList.Add(Tuple.Create(“C”, “B”)); myList.Add(Tuple.Create(“C”, “B”)); // Duplicate myList.Add(Tuple.Create(“A”, “D”)); FindAndRemoveDuplicates(myList); } private void FindAndRemoveDuplicates(List<Tuple> myList) { // how can I perform this ? } 我不能使用词典,因为我可以拥有相同的键但不同的值! 先感谢您

Tuple.Create()vs new Tuple

请考虑以下表达式: new Tuple(1,2); Tuple.Create(1,2); 这两种元组创建方法有什么区别吗? 从我的阅读来看,它似乎比C ++中的对象创建(堆与堆栈)更方便。

匿名类型和元组

匿名类型和元组之间有什么区别?

C#7:如何使用元组将对象解构为单个值?

C#7的一个很好的新function是可以为类定义解构器并将解构值直接赋值给值元组。 但是,在将对象解构为单个值的情况下,我找不到将其分配给元组的方法。 虽然元组的类型有单个元素( ValueTuple ),但使用括号的简写语法在这里不起作用。 我发现访问解构器的唯一方法是直接调用Deconstruct方法,但这消除了它的好处,因为我可以使用任何方法来实现这一目的。 有没有人知道将对象解构为单个值的更好方法? 这是我的测试代码: class TestClass { private string s; private int n; public TestClass(string s, int n) => (this.s, this.n) = (s, n); public void Deconstruct(out string s) => s = this.s; public void Deconstruct(out string s, out int n) => (s, n) = (this.s, this.n); } static void Main(string[] […]

Triplet类用于什么? 它与元组有关吗?

所以我刚刚了解了Triplet课程。 我没有使用ASP.NET的经验,只有核心.NET Framework。 有人可以向我解释Triplet类存在于何处/原因? 它像一个元组?

可以将名为Tuple的C#用作MVC页面模型类型吗?

在C#7中,您可以使用命名元组: var foo = (Name: “Joe”, Age: 42); 如果我使用以下方法将其传递给MVC模型: return View(foo); 那么应该在cshtml文件中使用什么语法来声明模型? 虽然这不起作用,但像…… @model (string Name, int Age);

元组==混乱

假设我定义了两个元组: Tuple tuple1 = new Tuple(1.0f, 2.0f, 3.0f, 4.0f); Tuple tuple2 = new Tuple(1.0f, 2.0f, 3.0f, 4.0f); 如果我尝试比较元组,我会得到不同的结果 bool result1 = (tuple1 == tuple2); // FALSE bool result2 = tuple1.Equals(tuple2); // TRUE 我希望两个调用都能返回true。 究竟是什么==比较?