Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过循环创建一个数组_C#_Arrays_Loops - Fatal编程技术网

C# 通过循环创建一个数组

C# 通过循环创建一个数组,c#,arrays,loops,C#,Arrays,Loops,我需要创建一个字符串数组,非常简单。。。唯一的问题是字符串是1-1000之间的整数,我真的不想每一个都键入 你能创建一个循环来创建这个吗 现在看起来像这样 private readonly string[] _myArray = { "1", "2", "3", "4", "5" }; 它的名字叫 for (var i = 0; i < _myArray.Length; i++) { arFoo[i].SetBar(

我需要创建一个字符串数组,非常简单。。。唯一的问题是字符串是1-1000之间的整数,我真的不想每一个都键入

你能创建一个循环来创建这个吗

现在看起来像这样

        private readonly string[] _myArray = { "1", "2", "3", "4", "5" };
它的名字叫

        for (var i = 0; i < _myArray.Length; i++)
        {
            arFoo[i].SetBar(_myArray[i]);
        }
for(var i=0;i<\u myArray.Length;i++)
{
arFoo[i].SetBar(_myArray[i]);
}
关于如何在不手动键入的情况下添加其他995,您有什么建议吗?

\u myArray=new string[1000];
_myArray = new string[1000];
for (int i = 1; i <= 1000; i++) _myArray[i - 1] = i.ToString();
对于(inti=1;i
string[]arr=newstring[1000];
对于(inti=1;i

int NumberOfElements = 1000;
String[] Array = new String[NumberOfElements];

for(int i=0; i<Array.Length; i++)
{
   Array[i] = (i + 1).ToString();
}
int NumberOfElements=1000;
String[]数组=新字符串[NumberOfElements];

对于(int i=0;i您需要数组吗?您可以这样做:

for (var i = 0; i < 1000; i++)       
{            
   arFoo[i].SetBar(i.ToString()); 
}
for(变量i=0;i<1000;i++)
{            
arFoo[i].SetBar(i.ToString());
}

如果您确实需要数组,请理解C#(和.Net)中的数组是固定大小的。您需要另一个数据结构,如
列表
,以便添加元素,然后您可以通过
ToArray()

转换为数组(如果确实需要),您可以在for循环中执行此操作,如下所示,在int'i'上调用ToString

private string[] _myArray = new string[1000];

for(int i=0;i<1000;i++)
{
  _myArray[i] = i.ToString();
}
private string[]\u myArray=新字符串[1000];

对于(int i=0;i这是简单而清晰的:

readonly string[] _myArray 
    = Enumerable.Range(1, 1000)
        .Select(i => i.ToString())
        .ToArray();

如果要使用LINQ:

    private readonly string[] _myArray;

    public Foo()
    {
        _myArray = Enumerable.Range(1, 1000).Select(s => s.ToString()).ToArray();
    }
或者更传统地说:

public class Foo
{
    private readonly string[] _myArray;

    public Foo()
    {
        _myArray = new string[1000];
        for(int i=1; i<=1000; i++)
        {
            _myArray[i - 1] = i.ToString();
        }
    }
}
公共类Foo
{
私有只读字符串[]\u myArray;
公共食物(
{
_myArray=新字符串[1000];
对于(int i=1;i
private readonly string[]_myArray=new string[1000];
对于(int i=0;i<\u myArray.Length;i++)
_myArray[i]=i.ToString();

此方法将生成从“from”到“to”的字符串数组(包括)

private string[] GetNumbers(int from, int to)
{
  int size = to - from + 1;
  string[] result = new string[size];
  int number = from;
  for (int i = 0; i < size; i++)
  {
    result[i] = number.ToString();
    number++;
  }
  return result;
}

string[] numbers = GetNumbers(1, 1000); // to get what You want
private string[]GetNumbers(int-from,int-to)
{
int size=to-from+1;
字符串[]结果=新字符串[大小];
整数=从;
对于(int i=0;i

你在生成随机整数吗?你能简单地使用C#random库生成1000个整数,将它们转换成字符串,然后运行for循环吗?我不知道只读功能对你是否重要,但如果重要,我会在答案上看到很多噪音,因为许多答案忽略了这个细节。你的答案是0-999,而不是1-1000。除非他需要数组在第一个元素中包含1。如果是这样,这可能会更好一些:for(int i=1;i
arr[i]
应该是
arr[i-1]
只需将new int[1000]更改为new string[1000],数组索引从0开始。
string[]arr=new int[1000]
甚至不编译。@Peri@vcsjones最初我把问题看错了,并假设这是他想要的整数。我想我在更改它时一定漏掉了一些部分。数组索引是我以前漏掉的编辑。我在@Anthony Pegram发布时写的!:(这不是字符串数组。这是一个很好的干净的解决方案。你知道它在性能上与“普通”的for循环方式相比如何吗?
public class Foo
{
    private readonly string[] _myArray;

    public Foo()
    {
        _myArray = new string[1000];
        for(int i=1; i<=1000; i++)
        {
            _myArray[i - 1] = i.ToString();
        }
    }
}
private readonly string[] _myArray = new string[1000];

for (int i = 0; i < _myArray.Length; i++)
    _myArray[i] = i.ToString();
int[] arr = Enumerable.Range(1, 1000).ToArray();
private string[] GetNumbers(int from, int to)
{
  int size = to - from + 1;
  string[] result = new string[size];
  int number = from;
  for (int i = 0; i < size; i++)
  {
    result[i] = number.ToString();
    number++;
  }
  return result;
}

string[] numbers = GetNumbers(1, 1000); // to get what You want