所以我先给出场景。我在字符串数组中有一些值(小于 10)。我想将这些值传递到 10 个不同的字符串中。假设我在数组中得到 7 个值,字符串 1 到字符串 7 的值将分别为 7,字符串 8,9 和 10 将为空/空白。
任何人都可以帮助我如何实现这一目标?
谢谢!
var temp = (string[])array.Clone();
Array.Resize<string>(ref temp, NewSize);
您不需要这样做,只需创建一个新的字符串数组,如下所示:
var s = yourStringArray.Select((x,i)=>i>6 ? "" : x).ToArray();
//s[7] == s[8] == s[9] = "" //Notice the Zero-based index of string array
创建一个新的空数组来保存您想要的字符串并将其复制到其中。任何剩余空间都会有null
引用:
string[] oldArr = new string[] { "1", "2", "3", "4", "5", "6", "7" };
string[] newArr = new string[10];
for (int i = 0; i < oldArr.Length; i++)
{
newArr[i] = oldArr[i];
}
newArr
现在有:
for(int i=0; i<=arr.length; i++)
{
if(i<arr.length)
new_arr[i]=arr[i];
else
new_arr[i]=null;
}
像这样的东西?
List<string> DoFoo(string [] input, int expectedOutputSize, string defaultValue)
{
var result = new List<string>();
result.AddRange(input);
while(result.Count < expectedOutputSize)
{
result.Add(defaultValue);
}
return result;
}
和用法
string[] input = new[] {"string1", "string2"};
var output = DoFoo(input, 10, null);
我想将这些值传递到 10 个不同的字符串中
你可以像这样循环
for(int i=0;i<strArray.Length;i++)
{
if(!string.IsNullOrEmpty(strArray[i]))
{
//do your work
}
}
这通常不被推荐,但有一些有效的场景可以按照您描述的方式将数组拆分为多个变量,这里是您需要的代码示例:
protected void Page_Load(object sender, EventArgs e)
{
string[] stringArray = {"cat", "dog", "bird", "elephant", "frog", "monkey"};
string string1, string2, string3, string4, string5, string6, string7, string8, string9, string10;
string1 = safeGetString(stringArray, 1);
string2 = safeGetString(stringArray, 2);
string3 = safeGetString(stringArray, 3);
string4 = safeGetString(stringArray, 4);
string5 = safeGetString(stringArray, 5);
string6 = safeGetString(stringArray, 6);
string7 = safeGetString(stringArray, 7);
string8 = safeGetString(stringArray, 8);
string9 = safeGetString(stringArray, 9);
string10 = safeGetString(stringArray, 10);
ltlInfo.Text = string1 + ", " + string1 + ", " + string2 + ", " + string3 + ", " + string4 + ", " + string5 + ", " + string6 + ", " + string7 + ", " + string8 + ", " + string9 + ", " + string10;
}
private string safeGetString(string[] stringArray, int index)
{
if (index < stringArray.Length)
{
return stringArray[index];
}
else
{
return null;
}
}