c# - 尝试对没有所有元素的数组列表进行排序

标签 c# .net arrays list

我创建的数组有 20 个元素,但代码并不要求用户同时输入所有 20 个元素。他们可以输入 20 以下的任意数量的项目,然后单击一个按钮以显示他们目前输入的值。

我可以弄清楚如何对数组进行排序,以及如何显示所有 20 个元素,但我不知道如何调整我的代码以仅显示他们输入的值。使用下面的代码,如果用户只输入 20 个元素中的 5 个,他们会得到一大堆 0 及其值。

 private void btnDisplayScore_Click(object sender, EventArgs e)
    {
        string scoresString = "";
        foreach (int s in scores)
            scoresString += s + "\n";
        MessageBox.Show(scoresString, "Sorted Scores");

        txtScore.Focus();
    }

如果这是一个愚蠢的问题,我深表歉意,我才刚刚开始编程。

最佳答案

您可以使用 Sort(T[] array, int from, int length) 的重载它还有两个参数,指示初始索引和要排序的子数组的长度。例如,如果用户输入 K元素,您可以对从零到 K 的范围进行排序像这样:

int[] myArray = new int[20];
int K = ... // This variable is set to the number of items the user enters
Array.Sort(myArray, 0, K);

更好的解决方案是避免在知道数组将包含多少元素之前调整数组的大小。最好的解决方案是使用一个允许您动态添加项目的容器,例如 List<T> .

关于c# - 尝试对没有所有元素的数组列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19352224/

相关文章:

c# - 结构体和记录结构体的区别

c# - 如何构建这个 LINQ 表达式?

javascript - 如何在js中将select中的文本与数组匹配?

c# - 计时器占用内存(每秒3MB)

c# - 如何使概率随着时间的推移而增加并获得可预测的结果

c# - 初始化后无法使用 MySqlConnection。为什么?

c# - 不兼容引用 : System. 管理 4.0.0.0?

c# - 为什么 lambda 表达式不是 "interned"?

ios - 比较数组和 Realm 数据库中的字符串数据?

java - 两个不同的变量指向同一内存位置