如何在c#

时间:2015-10-15 04:59:33

标签: c# string

如何在c#

的循环中声明多个变量名

有没有办法按循环声明n个字符串

我不必使用array..please如果可以在没有数组的情况下完成,那么请告诉它对我很有帮助

例如: -

String st1 = "";
String st2 = "";
String st3 = "";
String st4 = "";
String st5 = "";

如果有任何办法,请帮助

3 个答案:

答案 0 :(得分:3)

好吧,如果我正确解释您的问题,您可以声明arraylist,然后在循环中初始化这些elements

例如(数组)(如果你想要一个固定数量的元素):

int n = 10; // number of strings

string[] str = new string[n]; // creates a string array of n elements

for (int i = 0; i < n; i++) {
    str[i] = ""; // set the value "" at position i in the array
}

(list)(如果你不想要修复数量的元素)

using System.Collections.Generic;

...
int n = 10;
List<string> str = new List<string>(); // creates a list of strings
// List<string> str = new List<string>(n) to set the number it can hold initially (better performance)

for (int i = 0; i < n; i++) {
    list.Add(""); // if you've set an initial capacity to a list, be aware that elements will go after the pre allocated elements
}

list[0] = "hello world"; // how to use a List
list[list.Count - 1] = "i am the last element"; // list.Count will get the total amount of elements in this list, and we minus 1 to fix indexing

答案 1 :(得分:3)

如果您不知道需要多少个字符串,请使用List<string>

List<string> strList = new List<string>();

for (int i = 0; i < loopTotal; i++)
{
    string s = "foo";
    strList.Add(s);
}

当您使用List时,您可以拥有一组变量,而无需定义计数。你可以在0和(在这里插入最大数字)之间的任何地方。

如果你知道你需要多少个字符串,你可以使用string[]的asray:

string[] Array = new string { "", "", "", "", "" };

foreach (int i = 0; i < Array.Count(); i++)
{
    Array[i] = "foo";
}

这可确保数组中的每个项都有值。但是,作为已定义的列表,您可能希望使用foreach,它将使用Array计数作为循环计数器:

foreach (string s in Array)
{
    Array[s] = "foo";
}

答案 2 :(得分:2)

将这些值添加到集合中......

String s1 = "text";
var c = new List<string>(new [s1]);

然后循环。 Vars仍然是明确的,但你从集合中引用它们。

或者,您可以查看反射msdn example。通常,反射对性能来说并不是很好。

出于好奇,最好知道为什么不允许使用数组。

编辑:这包括根据评论的集合初始化程序的示例。不同的集合具有不同的构造函数,但是list允许您传递一个可以使用它来启动它。此示例创建一个内联数组以添加到集合中。