我试图通过另一个包含我想要提取的索引的数组来访问一维“数据”数组(字符串或双精度数组)中的元素:
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[])
在我的情况下不起作用,因为此方法仅适用于多维数组。
答案 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();