【问题标题】:Create and fill elements in an array在数组中创建和填充元素
【发布时间】:2019-09-02 01:15:52
【问题描述】:

我是 C# 的新手,并试图自学。我想出了解决这个问题的办法。

给定一个整数大小,返回长度为 1 的数组。

有更简洁的方法吗?

int[] createArray(int size)
{
    ArrayList al = new ArrayList();
    for (int i = 0; i < size; i++)
        al.Add(1);
    int[] myArray = al.Cast<int>().ToArray();
    return myArray;
}

【问题讨论】:

  • al.Cast&lt;int&gt;().ToArray();,嗯,你实际上可以创建一个List&lt;int&gt;(),然后在它上面做一个ToArray()。稍微缩短类型转换。
  • 您使用ArrayList而不是数组或List&lt;T&gt;是否有特殊原因?
  • 同时,我建议阅读Enumerable.RepeatToArray。或者(因为您是 C# 新手),如何声明一个数组和for 循环(以填充数组)。
  • 有使用ArrayList的理由吗?不,这正是我在搜索谷歌时想出的。我是新手,所以我不知道最好的方法来解决这个问题或让它更简洁。
  • 您的问题有三个方面。 a) 如何定义特定大小的数组? b)如何循环遍历数组? c) 如何在数组中设置元素?我建议逐一解决这三个问题。

标签: c# arrays arraylist


【解决方案1】:

优雅的方式:

int size = 10;
int defaultValue = 1;
int[] myArray = Enumerable.Repeat<int>(defaultValue, size).ToArray();
// short way:
int[] myArray2 = Enumerable.Repeat<int>(1, 10).ToArray();

【讨论】:

  • 请注意,您不需要&lt;int&gt;,因为类型会被推断出来。就做var array = Enumerable.Repeat(1, 10).ToArray();
【解决方案2】:

你可以这样做

int[] createArray(int size)
{
    int[] myArray = new int[size];
    for (int i = 0; i < size; i++)
        myArray[i] = 1;
     return myArray;
}

【讨论】:

  • 这是我所做的更清洁的方式,但不是我想要的。不过谢谢。
【解决方案3】:

这就是我想要的。感谢大家的帮助。

int[] createArray(int size) 
{
  return Enumerable.Repeat(1, size).ToArray();
}

【讨论】:

    猜你喜欢
    • 2011-07-13
    • 2016-07-14
    • 2011-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-12
    相关资源
    最近更新 更多