Tag: 元组

为什么C#7 ValueTuples实现了Equals方法而不是double equals操作符?

请考虑以下代码段: var tuple1 = (7, “foo”); var tuple2 = (7, “foo”); var tuple3 = (42, “bar”); Assert.That(tuple1.Equals(tuple2), Is.True); //This passes Assert.That(tuple1.Equals(tuple3), Is.False); //This passes Assert.That(tuple1 == tuple2, Is.True); //This does not compile 前两个断言通过。 第三个不编译。 为什么ValueTuple实现了自定义的Equals方法但没有实现double equals运算符?

c#使用Tuple对List 进行排序?

我需要按发布日期对MediaItem对象的List 进行排序…发布日期不是项目的属性。 因此,我最初的目的是暂时处理发布日期属性,加载,排序和丢弃属性。 有人在我的工作中建议我使用Tuple并使用LINQ进行排序…我在我的片段测试中得到了这个,填写了List …但我不确定如何使用该日期属性进行排序LINQ。 我会一直看着我,但如果有人得到任何帮助我会很感激。 谢谢。 List<Tuple> list = new List<Tuple>(); for (int i = 0; i <= 10; i++) { DateTime date = new DateTime(2011, i, 1); MediaItem item = new MediaItem(); list.Add(new Tuple(item, date)); }

如何命名元组属性?

如何和“可能”组织从返回元组类型的方法返回与参数的名称,作为一个exapmle private static Tuple methodTuple() { return new {Name = “Nick”, Age = “Twenty”}; /*exception because need to new Tuple(){Item1 = “Nick”, Item2 = “Twenty”}o*/ } 和methodTuple.Name类的调用参数不像methodTuple.Item1….N 这有可能吗? UPD:我想用没有新命名类型的命名参数创建对象。

c#多任务

int a, b, n; … (a, b) = (2, 3); // ‘a’ is now 2 and ‘b’ is now 3 这种事情在C#中真的很有帮助。 在这个例子中,’a’和’b’没有被封装在一起,例如位置的X和Y可能是。 这是否以某种forms存在? 下面是一个不太重要的例子。 (a, b) = n == 4 ? (2, 3) : (3, n % 2 == 0 ? 1 : 2); Adam Maras在评论中表示: var result = n == 4 ? Tuple.Create(2, 3) […]

使用LINQ获取列表中的所有对

如何获取列表中所有可能的项目对(顺序不相关)? 例如,如果我有 var list = { 1, 2, 3, 4 }; 我想得到这些元组: var pairs = { new Tuple(1, 2), new Tuple(1, 3), new Tuple(1, 4), new Tuple(2, 3), new Tuple(2, 4) new Tuple(3, 4) }