gpt4 book ai didi

c# - 如何在 C# 中对整数二维数组进行排序

转载 作者:行者123 更新时间:2023-11-30 21:30:33 25 4
gpt4 key购买 nike

我有一个二维数组,其中包含 6 个不同销售员的已售商品数量。我正在尝试对数组进行排序以找到所有已售出文章的最高数量。

我的问题是能够对二维数组进行排序并读取其内容。

我试过了

        int[,] sortedByFirstElement = nrArticles.OrderBy(x => x[0]);

这给了我一条错误消息:“'int[,] 不包含 'OrderBy' 的定义并且没有可访问的扩展方法......等等”

我试过了,它给我一条错误消息,声称输入不是 int。

        Array.Sort(nrArticles);
foreach (int value in nrArticles)
{
Console.Write(value);

}

以下代码是我目前得到的,不包括排序尝试。

        string[,] salesMan = new string[6, 3];
int[,] nrArticles = new int[6, 0];

string line;
int nr;

for (int i = 0; i < 5; i++)
{

Console.Write("Enter the name of salesman: ");
line = Console.ReadLine();

salesMan[i, 0] = line;

Console.Write("Enter the social number: ");
line = Console.ReadLine();
salesMan[i, 1] = line;


Console.Write("Enter the district: ");
line = Console.ReadLine();
salesMan[i, 2] = line;

//This is where i convert the entered value into an int taken
by the array
Console.Write("Enter the amount of sold articles: ");
line = Console.ReadLine();
nr = Int32.Parse(line);
nrArticles[i, 0] = nr;




}

Console.Write("Namn \t\tPersnr \t\t\tDistrikt \t\tAntal");
for (int j = 0; j < 5; j++)
{

Console.Write("\n"+salesMan[j, 0] +"\t\t");
Console.Write(salesMan[j, 1] + "\t\t\t");
Console.Write(salesMan[j, 2] + "\t\t\t");
Console.Write(nrArticles[j, 0]);
}

//Here's where i'd put my code of sorting my integer array
nrArticles (If i had one).

}

}

它的预期结果是这样的例子:231、183、130、122、40、10。也许作为一个单独的数组,甚至是字符串?

如有任何帮助,我们将不胜感激。

最佳答案

我认为,简短的回答是二维数组没有内置的 OrderBy 方法,因此您需要自己处理它。我认为您使用 Array.Sort 方法的方法是正确的,但这仍然仅限于对一维数组进行排序。

其他人已经暗示过这一点,但我认为您在使用二维整数数组时会遇到很多麻烦。除非有特定的理由像您一样这样做,否则我认为为您的推销员创建一个类会更好地为您服务,该类将与单个推销员相关的全部属性封装为一个实体。 (例如名称、地区、已售商品等)。

一旦您有了明确定义的类型定义,LINQ(例如)就可以在您希望如何组织这些对象的集合方面为您提供很大的灵 active 。

这是一些非常简单的示例代码:

using System.Linq;

namespace ConsoleApp1
{
class Program
{
public class Salesman
{
public string Name { get; set; }
public int District { get; set; }
public int ArticlesSold { get; set; }
}

static void Main(string[] args)
{

var salesmen = new Salesman[] {
// Fill collection by some means...
};

// Then for example:
// sort by Ascending sales count
var sorted = salesmen.OrderBy(x => x.ArticlesSold);

// or descending
sorted = salesmen.OrderByDescending(x => x.ArticlesSold);

// or by something more complex
sorted = salesmen.OrderBy(x => x.ArticlesSold).ThenBy(x => x.District);
}

}
}

关于c# - 如何在 C# 中对整数二维数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54186417/

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