【发布时间】:2021-03-26 20:56:10
【问题描述】:
我有一个“项目”,我只能使用数组。在这个项目中,我必须从 txt 文件中读取数据,然后例如在跑步者中找到第二好的单圈时间等。
我总能计算出正确的答案,但我不确定我的阵列管理。
如您所知,在 C# 中,您必须在初始化时提供数组的长度。由于有些任务我不知道数组的大小,我所做的是声明一个更大的数组,然后使用这个函数:
private static string[] ArraySimplyfier(string[] strs, int index)
{
string[] returnStr = new string[index];
for (int i = 0; i < returnStr.Length; i++)
{
returnStr[i] = strs[i];
}
return returnStr;
}
如您所见,它“清除”了数组中的空值,但问题是我必须为每种类型的数组创建它,这并不理想。您对我的问题有什么其他想法吗?
【问题讨论】:
-
我很确定您可以在初始化第一个数组之前计算所需的长度。如果它是随机的(如用户输入),那么您不应该使用数组。向我们展示最初的问题,以便我们提供帮助。
-
你可以使用 IEnumerable 吗?
-
我认为这就是这个项目的目的:向您展示数组是固定大小的。如果您想动态增长,请改用
List<T>。 -
"I have to create it for each type of array which is not ideal." 是什么意思?您的代码有效,如果您必须做一个展示数组如何工作的练习,那么您已经完成了。
-
所以这是我项目中的一个例子:数据库中有很多汽车,例如,我必须将所有红色的汽车收集到一个数组中。在收集所有元素之前,我不会真正知道数组有多大。是的,它有效,我只是好奇也许有人知道更好的方法