如何使用索引数组在一行中指定 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);
}
}
有没有办法让我说我想要数组中的一些特定值,可能以这样的方式使用?
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);
}
}