我不确定标题是否恰好描述了我想要实现的目标。 简单地说:
如果我有6个输入:
- 输入1:字符串1
- 输入2:String1Count
- 输入3:字符串2
- Input4:String2Count
- Input5:String3
- Input6:String3Count
我想通过字符串各自的计数指定的次数将每个字符串添加到数组。完成此操作后,数组中仍然有空字段,请再次循环这些值并重复该操作,直到数组已满为止。
类似这样的东西
public string str1 = "First String";
public int String1Count = 4;
public string str2 = "Second String";
public int String2Count = 7;
public string str3 = "Third String";
public int String3Count = 5;
int[] arr1 = new int[100];
for (int i = 0; i < arr1.Length; i++)
{
arr1[i] = str1;
arr1[i+1] = str1;
arr1[i+2] = str1;
arr1[i+3] = str1;
arr1[i+4] = str1;
arr1[i+5] = str2;
arr1[i+6] = str2;
arr1[i+7] = str2;
...
arr1[arr1.lenght] = str; //It may be str1, str2 or str3, whichever is next
}
我认为至少还需要一个for loop
和一些if
语句,但我无法弄清楚。
答案 0 :(得分:1)
首先,您无法将string
分配给int[]
数组。您必须将其关联到string[]
数组。要解决您的问题,您可以使用模%
运算符:
string str1 = "First String";
int String1Count = 4;
string str2 = "Second String";
int String2Count = 7;
string str3 = "Third String";
int String3Count = 5;
string[] arr1 = new string[100];
int sum12 = String1Count + String2Count;
int sum123 = String1Count + String2Count + String3Count;
for (int i = 0; i < arr1.Length; i++)
{
if (i % sum123 < String1Count)
arr1[i] = str1;
else if (i % sum123 < sum12)
arr1[i] = str2;
else if (i % sum123 < sum123)
arr1[i] = str3;
}
答案 1 :(得分:0)
可能类似于:
string str1 = "First String";
int String1Count = 4;
string str2 = "Second String";
int String2Count = 7;
string str3 = "Third String";
int String3Count = 5;
var resultList = new List<String>();
resultList.AddRange(Enumerable.Repeat(str1, String1Count));
resultList.AddRange(Enumerable.Repeat(str2, String2Count));
resultList.AddRange(Enumerable.Repeat(str3, String3Count));
string[] resultArray = resultList.ToArray();