本文整理汇总了C#中Slice.indices方法的典型用法代码示例。如果您正苦于以下问题:C# Slice.indices方法的具体用法?C# Slice.indices怎么用?C# Slice.indices使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Slice
的用法示例。
在下文中一共展示了Slice.indices方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Slice
internal static List<byte> Slice(this IList<byte>/*!*/ bytes, Slice/*!*/ slice) {
if (slice == null) {
throw PythonOps.TypeError("indices must be slices or integers");
}
int start, stop, step;
slice.indices(bytes.Count, out start, out stop, out step);
if (step == 1) {
return stop > start ? bytes.Substring(start, stop - start) : null;
}
List<byte> newData;
if (step > 0) {
if (start > stop) {
return null;
}
int icnt = (stop - start + step - 1) / step;
newData = new List<byte>(icnt);
for (int i = start; i < stop; i += step) {
newData.Add(bytes[i]);
}
} else {
if (start < stop) {
return null;
}
int icnt = (stop - start + step + 1) / step;
newData = new List<byte>(icnt);
for (int i = start; i > stop; i += step) {
newData.Add(bytes[i]);
}
}
return newData;
}
示例2: GetSlice
internal static object[] GetSlice(object[] data, Slice slice) {
int start, stop, step;
slice.indices(data.Length, out start, out stop, out step);
return GetSlice(data, start, stop, step);
}
示例3: GetSlice
internal static object[] GetSlice(object[] data, Slice slice) {
int start, stop, step;
slice.indices(data.Length, out start, out stop, out step);
if (step == 1) return GetSlice(data, start, stop);
int size = GetSliceSize(start, stop, step);
if (size <= 0) return ArrayUtils.EmptyObjects;
object[] res = new object[size];
for (int i = 0, index = start; i < res.Length; i++, index += step) {
res[i] = data[index];
}
return res;
}