我不想要任何排序或任何花哨的东西。我只想要 2 列,左边是名称,右边是数字。
像这样:
string/int[,] myArray = new string/int[,]();
每个字符串都有一个对应的整数。但我不希望它用于排序或其他任何东西。我知道我可以使用字典和其他我知道如何使用的高级方法。我想变得简单 我想以最简单的形式了解如何制作具有 2 种类型的数组。我能想到的最简单的方法是只使用对象,然后再显式转换。有更简单的方法吗?
最佳答案
最简单的方法是使用 Tuple
类(class)。您可以使用 Tuple
使用通用参数组合类以形成元组。例如,Tuple<string, int>
或 Tuple<string, int, int?, char>
. Here是 2 参数版本的文档。在您描述的情况下,您可能需要一个 Tuple<string, int>[]
类型的实例.
您可以访问 Tuple
的元素使用 ItemX
方法:myTuple.Item1
, myTuple.Item2
等
为了实际创建元组,我建议使用 Tuple.Create
方法。例如:Tuple.Create("hello", 1)
将返回 Tuple<string, int>
项目设置正确。这些Create
方法允许您省略通用参数。
作为旁注,您提到您不需要排序。通过对新的 Tuple<string, int>
执行 LINQ 查询,您可以很容易地进行任意排序。 (它实现了 IEnumerable<Tuple<string, int>>
,因此您可以对其执行 LINQ 的 IEnumerable
扩展)。例如,为了按 int
订购部分然后是元组的字符串部分,你可以这样做:
myTupleArray.OrderBy(t => t.Item2).ThenBy(t => t.Item2);
另请参阅 OrderByDescending
和 ThenByDescending
更多选项。
关于c# - 拥有具有 2 种数据类型的强类型数组的最简单方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17226827/