将字符串List插入字符串数组定义的快速方法

时间:2014-11-20 12:40:20

标签: c# arrays list

我有这些变量

string a;
string b;
List<string> StringList = new List<string>();
string c;

我想像这样定义一个新的字符串数组

string[] StringArray = new string[] {a, b, StringList**.METHODHERE** , c} ;

有没有一种巧妙的方法将列表转换为数组,展平它,并将项添加到数组? 现在我有类似

的东西
string[] ar = new string[] { };
ar[0] = a;
ar[1] = b;

for (int i = 0; i < RpsPdfFilenamesList.Count(); i++)
    {ar[i + 2] = RpsPdfFilenamesList.ElementAt(i);}

ar[2 + RpsPdfFilenamesList.Count()] = c;

但是我确定这是一个相当基本的方法,我将丢失,这将减少此代码。

3 个答案:

答案 0 :(得分:2)

您可以首先将字符串插入List,然后创建一个数组:

StringList.Insert(0, a);
StringList.Insert(1, b);
StringList.Add(c);
string[] StringArray = StringList.ToArray();

答案 1 :(得分:1)

您可以使用Array.Copy

Array.Copy(StringList.ToArray(), 0, StringArray, 2, StringList.Count);

答案 2 :(得分:0)

您可以使用List.CopyTo

string a = "A"; string b = "B"; string c = "C";
var StringList = new List<string>() { "test1", "test2", "test3" };
string[] StringArray = new string[3 + StringList.Count];
StringArray[0] = a; StringArray[1] = b; StringArray[StringArray.Length - 1] = c;
StringList.CopyTo(StringArray, 2);

结果

A
B
test1
test2
test3
C

这是使用LINQ的更短但效率更低的方法:

StringArray = new[] { a, b }.Concat(StringList).Concat(new[] { c }).ToArray();