Używam następujące oświadczenie w Javie:C# równoważne Java Arrays.fill() metoda
Arrays.fill(mynewArray, oldArray.Length, size, -1);
Proszę zaproponować odpowiednik C#.
Używam następujące oświadczenie w Javie:C# równoważne Java Arrays.fill() metoda
Arrays.fill(mynewArray, oldArray.Length, size, -1);
Proszę zaproponować odpowiednik C#.
nie wiem o niczym, w ramach którego to robi, ale jest to dość łatwe do wdrożenia:
// Note: start is inclusive, end is exclusive (as is conventional
// in computer science)
public static void Fill<T>(T[] array, int start, int end, T value)
{
if (array == null)
{
throw new ArgumentNullException("array");
}
if (start < 0 || start >= end)
{
throw new ArgumentOutOfRangeException("fromIndex");
}
if (end >= array.Length)
{
throw new ArgumentOutOfRangeException("toIndex");
}
for (int i = start; i < end; i++)
{
array[i] = value;
}
}
Lub jeśli chcesz określić liczbę zamiast początku/końca:
public static void Fill<T>(T[] array, int start, int count, T value)
{
if (array == null)
{
throw new ArgumentNullException("array");
}
if (count < 0)
{
throw new ArgumentOutOfRangeException("count");
}
if (start + count >= array.Length)
{
throw new ArgumentOutOfRangeException("count");
}
for (var i = start; i < start + count; i++)
{
array[i] = value;
}
}
Wydaje się, że chcesz zrobić coś bardziej jak to
int[] bar = new int[] { 1, 2, 3, 4, 5 };
int newSize = 10;
int[] foo = Enumerable.Range(0, newSize).Select(i => i < bar.Length ? bar[i] : -1).ToArray();
tworząc nową większą tablicę z dawnych wartości i wypełnienie extra.
Dla prostego wypełnienia spróbować
int[] foo = Enumerable.Range(0, 10).Select(i => -1).ToArray();
lub zakres sub
int[] foo = new int[10];
Enumerable.Range(5, 9).Select(i => foo[i] = -1);
Mam nadzieję, że moja edycja jest uzasadniona .. lub inaczej nazwa zmiennej do 'uptoIndex' – nawfal
@nawfal: Nie, to było celowo (choć niekonsekwentnie) wyłączne. Uporządkowałem to i dodałem alternatywę. –
Jon, dlaczego sprawdzasz wyjątkowe przypadki i rzucasz się, gdy clr to zrobi? Jestem trochę zaskoczony tego rodzaju projektem. Czy wystarczy nie tylko drugi test warunkowy (w obu przykładach)? – nawfal