123456789101112131415161718192021222324252627 |
- using System.Collections.Generic;
- using Google.ProtocolBuffers.Collections;
- namespace Google.ProtocolBuffers.Descriptors {
- /// <summary>
- /// Internal class containing utility methods when working with descriptors.
- /// </summary>
- static class DescriptorUtil {
- /// <summary>
- /// Equivalent to Func[TInput, int, TOutput] but usable in .NET 2.0. Only used to convert
- /// arrays.
- /// </summary>
- internal delegate TOutput IndexedConverter<TInput, TOutput>(TInput element, int index);
- /// <summary>
- /// Converts the given array into a read-only list, applying the specified conversion to
- /// each input element.
- /// </summary>
- internal static IList<TOutput> ConvertAndMakeReadOnly<TInput, TOutput>(IList<TInput> input,
- IndexedConverter<TInput, TOutput> converter) {
- TOutput[] array = new TOutput[input.Count];
- for (int i = 0; i < array.Length; i++) {
- array[i] = converter(input[i], i);
- }
- return Lists<TOutput>.AsReadOnly(array);
- }
- }
- }
|