c# - 在 C# 中保存相同类型的有序值对的最佳类型是什么?

标签 c# .net types

在 C# 中保存相同类型的有序值对的最佳类型是什么?

我想要的是:

  1. 在编译时强制执行两个值组合(不可能在编译时或运行时尝试添加或删除)。
  2. 两个值具有相同的静态类型。
  3. 可以使用索引器检索两个值(例如 pair[0]、pair[1])。

    更新:我改变了主意,我真的不再想要#3,因为它毫无意义地打开了越界异常的大门:

最佳答案

您可以像这样扩展 Tuple 类:

public class Pair<T> : Tuple<T, T>
{
    public Pair<T>(T item1, T item2) : base(item1, item2)
    {           
    }

    public T this[int index]
    {
       get
       {
           if (index == 0)
               return Item1;
           else if (index == 1)
               return Item2;
           throw new ArgumentOutOfRangeException("index");
       }
    }
}

编辑:添加了构造函数。

关于c# - 在 C# 中保存相同类型的有序值对的最佳类型是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9991623/

相关文章:

.net - 单元测试项目找不到被测程序集(或依赖项)

objective-c - 在 Objective-C 开发中从 iOS 迁移到 Mac 时,NSIntegers 给出类型匹配错误

c# - 确定处理器支持哪些指令

c# - 用于检测字符串中重复的正则表达式

c# - 全局更改 CommandTimeout 默认值

c# - 将 Windows Azure 项目升级到 2.2

c# - .net FlagsAttribute 枚举是否需要手动赋值?

c# - 这种语法在抽象类的声明中意味着什么?

haskell - 如何将指定为自由单子(monad)的程序与预期指令的描述进行比较?

types - 如何在erlang中使用-spec功能