, если вы этого не сделали, вы можете сделать несколько вещей
git stash
. Это задержит ваши изменения и вернет вас к правильному источнику - вы можете захотеть их позже.
или git reset --hard
Это приведет к уничтожению различий в рабочем дереве (вы не можете вернуть свои изменения)
Если вы хотите очистить любой невоспроизведенный файлов git reset
будет недостаточно, и вы должны использовать
git clean -f
. Это приведет к удалению любых файлов из отслеживаемого корневого каталога, которые не находятся под контролем Git.
Нет вам нужно сделать выбор заранее, если вы в курсе последних событий.
Если вы сделали это (я предполагаю, что вы сделали это в 1 фиксации), вы можете сделать
git reset --hard HEAD^
. Это приведет к сбросу последнего фиксации и удалению полностью (используйте с осторожно, и если вы беспокоитесь, используйте soft, а затем верните его, как только вы проверите, что он перепроверял.)
public void ShortenArray()
{
int[] getallen = new int[] { 1 , 1 , 2 , 2 , 3 , 4 , 4 , 4 , 5 , 6 };
getallen = getallen.ToList().Distinct().ToArray();
}
Объяснение:
Linq-List предоставляет метод Distinct (). Этот метод удаляет дубликаты, но сохраняет порядок. Кроме того, Linq дает вам возможность конвертировать массивы в список и наоборот.
Альтернативный способ сделать это - проверить каждый элемент в массиве, если он уже установлен ранее, заменить элементы таким образом, чтобы все «пустые» значения были в конце, и использовать массив * Array. .Resize (/ ** /) * метод для сокращения массива. Намного больше работы, чтобы достичь того же результата.
Чтобы сгенерировать {1,2,3,4,5,6}
в качестве результатов (т.е. удалить дубликаты смежных записей), рассмотрите следующий подход:
using System;
using System.Collections.Generic;
namespace Test
{
public class Program
{
public static IEnumerable<int> RemoveDuplicates(int[] input)
{
int? old = null;
foreach (var value in input)
{
if (value != old)
yield return value;
old = value;
}
}
public static void Main()
{
int[] getallen = new int[] { 1, 1, 2, 2, 3, 4, 4, 4, 5, 6 };
Console.WriteLine(string.Join(",", RemoveDuplicates(getallen)));
Console.ReadLine();
}
}
}
IEnumerable<int>
возвращает значения без использования массива, а yield return
используется для возвращать неповторяющиеся записи, по одной за раз.
value
сравнивается с old
, чтобы гарантировать, что дубликаты смежных записей игнорируются.
string.Join
используется для объединения значений вместе с ,
между ними, поэтому они хорошо печатаются на консоли.
С точки зрения производительности, изменение объявления old
на int old = (input?.FirstOrDefault() ?? 1) + 1;
также может помочь, так что обнуляемые типы не будут задействованы. Я предпочитаю оставить это как обнуляемый тип для ясности).