我有这些变量
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;
但是我确定这是一个相当基本的方法,我将丢失,这将减少此代码。
答案 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();