在VB.Net中查找元组列表中的最低值

时间:2018-04-21 12:47:35

标签: vb.net list tuples

我正在尝试找到最低的Item2并从元组列表中返回Item1,我尝试使用List.Min但是我无法正确使用它,这是我的代码。

Dim ahlist As New List(Of Tuple(Of String, Double))

    ahlist.Add(Tuple.Create("test1", 1.2))
    ahlist.Add(Tuple.Create("test2", 0.2))
    ahlist.Add(Tuple.Create("test3", 1.8))

基本上我想在这种情况下找到最小数字和返回字符串(test2)。

4 个答案:

答案 0 :(得分:0)

我建议使用不同的数据结构:

https://msdn.microsoft.com/en-us/library/ms132329(v=vs.110).aspx

添加键/值组合。列表中的第0个始终是最小键,使其为O(1)操作而不是O(n)。在这种情况下,键将是Decimal,值将是字符串。

答案 1 :(得分:0)

您可以将比较项目的顺序反转为第一个数字:

Dim ahlist As New List(Of Tuple(Of Double, String))

ahlist.Add(Tuple.Create(1.2, "test1"))

答案 2 :(得分:0)

只需从C#语法到VB.net的简单修复,再到@Aamir Nakehwa的回答。

Dim minValue As Double = ahlist.Min(Function(x) x.Item2)
Debug.Print(minValue.ToString)

答案 3 :(得分:-1)

ahlist.Min(x => x.Item2)

试试这个。我会从你的元组列表中返回最小值。 并将其保存在任何变量中,如下所示

Dim minValue as Double = ahlist.Min(Function(x) x.Item2)