使用索引数组访问一维数组条目

时间:2014-02-10 17:41:16

标签: c# arrays indices

我试图通过另一个包含我想要提取的索引的数组来访问一维“数据”数组(字符串或双精度数组)中的元素:

string[] myWords = {"foo", "overflow", "bar", "stack"};
int[] indices = {3, 1};

string[] someWords = myWords[indices]; // Extract entries number three and one.

编译器拒绝最后一行。我希望看到的是someWords == {"stack", "overflow"}

据我所知,这适用于Matlab和Fortran,那么在C#中为数组做这个有什么好的和优雅的方法吗?列表也很好。

this question中的

Array.GetValue(int[])在我的情况下不起作用,因为此方法仅适用于多维数组。

2 个答案:

答案 0 :(得分:4)

如果你可以使用LINQ,这是一种方式:

string[] someWords = indices.Select(index => myWords[index]).ToArray();

答案 1 :(得分:1)

不确定这就是你所要求的。

string[] myWords = {"foo", "overflow", "bar", "stack"};
int[] indices = {3, 1};
string[] someWords = indices.Select(x=> myWords[x]).ToArray();