将String数组转换为不同的字符串

时间:2013-08-27 11:17:00

标签: c# arrays string

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

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

谢谢!

7 个答案:

答案 0 :(得分:2)

var temp = (string[])array.Clone();
Array.Resize<string>(ref temp, NewSize);

答案 1 :(得分: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

答案 2 :(得分: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

答案 3 :(得分:0)

for(int i=0; i<=arr.length; i++)
{
  if(i<arr.length)
   new_arr[i]=arr[i];
  else
   new_arr[i]=null;

}

答案 4 :(得分: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);

答案 5 :(得分:0)

  

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

你可以像这样循环

for(int i=0;i<strArray.Length;i++)
{
    if(!string.IsNullOrEmpty(strArray[i]))
    {
          //do your work
    }
}

答案 6 :(得分: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;
        }
    }