C# 通过循环创建一个数组
我需要创建一个字符串数组,非常简单。。。唯一的问题是字符串是1-1000之间的整数,我真的不想每一个都键入 你能创建一个循环来创建这个吗 现在看起来像这样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(
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;istring[]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;iprivate 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;iarr[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