C# 排序一组成对的数值-在java中是否有一个与hashmap等价的.NET?

C# 排序一组成对的数值-在java中是否有一个与hashmap等价的.NET?,c#,sorting,hashmap,data-dictionary,C#,Sorting,Hashmap,Data Dictionary,几天来我一直有个唠叨的问题,下面是我想做的: 我正在写一个程序,它以多种方式处理各种数字集,目前为止效果很好——现在我用一个循环来控制一个这样的计算,这样每次循环都会输出一个int值x和一个int值y 现在x是连续的,从计数器中导出,y只是一个变量数 我重复一遍,我有一个简单的循环读取数据行 foreach (DataRow dr in dTable.Rows) { .... I output x and y (after some calculations) .... } 现在我想为每一行获

几天来我一直有个唠叨的问题,下面是我想做的:

我正在写一个程序,它以多种方式处理各种数字集,目前为止效果很好——现在我用一个循环来控制一个这样的计算,这样每次循环都会输出一个int值x和一个int值y

现在x是连续的,从计数器中导出,y只是一个变量数

我重复一遍,我有一个简单的循环读取数据行

foreach (DataRow dr in dTable.Rows)
{
....
I output x and y (after some calculations)
....
}
现在我想为每一行获取这两个值,并在最后根据值y进行排序! 最初,我只是想像在java中那样使用hashmap并按值排序,但我发现在c中很难做到,因为datadictionary(我也不想使用临时表)只允许按键排序(在我的例子中是x)

现在我应该采取什么方法? -使用我循环的输出对值作为datatable的输入? -使用一个看起来非常复杂的2d数组,但最终是保持x和y之间的配对关系的唯一方法


或者是否有任何其他方法可以按值进行java hashmap排序?

如果y值是唯一的,那么可能:

var list = new SortedList<YType, XType>();
... Loop ...
     list.Add(yValue, xValue);
var list=new SortedList();
... 环
列表。添加(yValue、xValue);
然后按y值对其进行键控和排序,但键必须是唯一的


为了使事情更复杂,
SortedDictionary
也被键入和排序;不过,O中有一些细微的差别——添加或获取是最便宜的,等等。

创建一个类来表示数据对,并将所有数据对存储在某种列表中。实现
IComparable
对第二个值进行排序,并以通常的方式对其进行排序(例如在Java中,但应易于翻译为C):


制作一个数据对列表,完成后使用库API对其进行排序。比较函数的实现应该提供您想要的任何结果。

我将使用LINQ来执行这种类型的操作,而不是使用映射类型的数据结构:

var list = from dr in dTable.Rows
           let x = ComputeX(dr)
           let y = ComputeY(dr)
           orderby y
           select new { x, y };

你介意更具体一点吗?如果我将这些对存储在一个列表中,我将失去键和值之间的耦合!
var list = from dr in dTable.Rows
           let x = ComputeX(dr)
           let y = ComputeY(dr)
           orderby y
           select new { x, y };