gpt4 book ai didi

c# - 根据第一个索引值对二维列表进行排序

转载 作者:太空宇宙 更新时间:2023-11-03 20:02:50 24 4
gpt4 key购买 nike

我已将以下值添加到我的二维列表(列表列表)中。它包含水果的重量,然后是它们的名称。你能告诉我如何根据权重的第一个索引值对这个二维数组进行排序吗?

List<List<String>> matrix = new List<List<String>>();
matrix.Add(new List<String>()); //Adds new sub List
matrix[0].Add("3.256");
matrix[0].Add("Apple");

matrix.Add(new List<String>());
matrix[1].Add("1.236");
matrix[1].Add("Orange");

matrix.Add(new List<String>());
matrix[2].Add("1.238");
matrix[2].Add("Banana");

matrix.Add(new List<String>());
matrix[2].Add("2.658"); //updated This should be matrix[3] instead of 2
matrix[2].Add("Apple");
....
...
..

Console.WriteLine(matrix[0][0]);//This prints out the value 3.256. after sorting it should print out 1.236

我是 C# 的新手,如果可能的话请给我一个例子

最佳答案

简单的回答:

matrix.OrderBy( l => l[0]);

好吧,这是一个真的糟糕的设计,首先是因为字符串比较不会给你相同的顺序 double比较会。很容易修复:

matrix.OrderBy( l => double.Parse(l[0]));

除了现在,如果您输入的数字不正确(并且无法解析为 double 字),它会抛出异常。您真正想要做的是创建一个“Fruit”对象:

class Fruit
{
public string Name { get; set; }
public double Weight { get; set; }
}

并持有List<Fruit> .现在你可以写:

matrix.OrderBy(f => f.Weight);

没有异常问题,因为如果你写错了,你会得到一个编译时错误。

OrderBy 返回一个 IEnumerable,因此请确保使用返回值而不是 matrix打印时

关于c# - 根据第一个索引值对二维列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26197230/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com