我有没有办法说我想从数组中获取一些特定的值,可能会以这种方式使用?
string[] values = new string[]{"boogie","woogie","all","night"};
string[] refinedValues = values.GetIndexes(new int[]{ 0, 2 });
在这种情况下,refinedValues
将是一个包含值"boogie"
和"all"
的数组。
答案 0 :(得分:2)
你可以这样做
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);
}
}
答案 1 :(得分:1)
是的,使用一点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"