-2

所以我先给出场景。我在字符串数组中有一些值(小于 10)。我想将这些值传递到 10 个不同的字符串中。假设我在数组中得到 7 个值,字符串 1 到字符串 7 的值将分别为 7,字符串 8,9 和 10 将为空/空白。

任何人都可以帮助我如何实现这一目标?

谢谢!

4

7 回答 7

2
var temp = (string[])array.Clone();
Array.Resize<string>(ref temp, NewSize);
于 2013-08-27T11:24:51.677 回答
1

您不需要这样做,只需创建一个新的字符串数组,如下所示:

var s = yourStringArray.Select((x,i)=>i>6 ? "" : x).ToArray();
//s[7] == s[8] == s[9] = ""     //Notice the Zero-based index of string array
于 2013-08-27T11:20:52.027 回答
1

创建一个新的空数组来保存您想要的字符串并将其复制到其中。任何剩余空间都会有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现在有:

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 无效的
  • 无效的
  • 无效的
于 2013-08-27T11:26:49.177 回答
0
for(int i=0; i<=arr.length; i++)
{
  if(i<arr.length)
   new_arr[i]=arr[i];
  else
   new_arr[i]=null;

}
于 2013-08-27T11:21:38.077 回答
0

像这样的东西?

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);
于 2013-08-27T11:21:39.303 回答
0

我想将这些值传递到 10 个不同的字符串中

你可以像这样循环

for(int i=0;i<strArray.Length;i++)
{
    if(!string.IsNullOrEmpty(strArray[i]))
    {
          //do your work
    }
}
于 2013-08-27T11:21:59.067 回答
0

这通常不被推荐,但有一些有效的场景可以按照您描述的方式将数组拆分为多个变量,这里是您需要的代码示例:

    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;
        }
    }
于 2013-08-27T11:37:04.683 回答