使用“foreach”语句将字符串数组的索引值设置为Enumerable数组中的项目的索引值。

时间:2016-03-23 18:43:23

标签: c# arrays ienumerable

这是将字符串数组的每个项目设置为Enumerable数组的最佳方法吗?我自己想出了这个方法,我试着使用我的google-foo但却无法用连贯的句子来描述我在这里想要做的事情..

string[] adapterDesc = new string[] {};
int i = 0;
foreach(NetworkInterface adapter in adapters)
{
    adapterDesc[i] = adapter.Description;
    i++;
}
...

1 个答案:

答案 0 :(得分:2)

不,该代码将因{1}}异常而失败,因为您声明了一个包含零元素的字符串数组。
因此,当您尝试设置第一个元素时,它将崩溃。

相反,您可以使用List来动态添加元素

IndexOutOfRange

List比数组更灵活,因为你不必知道数组的大小,你仍然可以像使用它一样使用它

List<string> adapterDesc = new List<string>();
foreach(NetworkInterface adapter in adapters)
{
    adapterDesc.Add(adapter.Description);
}
...

如果您想使用Linq,那么您甚至可以使用

将代码缩减到一行
for(int x = 0; x < adapterDesc; x++)
{
     Console.WriteLine(adapterDesc[x]);
}