如何使用索引数组在一行中指定 return 数组元素?

How can I return array elements specified in one line using an array of indexes?

有没有办法让我说我想要数组中的一些特定值,可能以这样的方式使用?

string[] values = new string[]{"boogie","woogie","all","night"};

string[] refinedValues = values.GetIndexes(new int[]{ 0, 2 });

在这种情况下,refinedValues 将是一个包含值 "boogie""all" 的数组。

是的,使用一点 LINQ:

string[] values = new string[] { "boogie", "woogie", "all", "night" };

var indexes = new[] {0, 2};
string[] refinedValues = values.Where((e, i) => indexes.Contains(i)).ToArray();

//refined-values contains "boogie", "all"

你可以做到

var refinedValues = new[] { 0, 2 }.Select(values.ElementAt);

自定义扩展方法如下所示

public static class EnumerableExtensions {
    public static IEnumerable<T> GetValues<T>(this IEnumerable<T> enumerable, params Int32[] indices) {
        return indices.Select(enumerable.ElementAt);
    }
}