Найдите фиксацию, которая удалила Ваш файл:
git log --diff-filter=D --oneline -- path/to/file | cut -f -d ' '
Демонстрационный вывод:
4711174
С Мерзавца 2.23 существует на самом деле restore
команда. Это все еще экспериментально , но для восстановления чего-то, что Вы удалили в фиксации (4711174 в этом случае), можно тогда ввести:
git restore --source=4711174^ path/to/file
Примечание ^ после идентификатора фиксации, поскольку мы хотим восстановить что-то от фиксации прежде та, которая удалила файл.
--source
аргумент говорит эти restore
команда, где искать файл (файлы) для восстановления, и это может быть любая фиксация и даже индекс.
Нет, я в это не верю, но вы могли бы написать такой метод расширения, который позволит вашему коду работать точно так, как написано.
public static bool In<T>(this T source, params T[] args) {
return args.Contains(source);
}
Затраты на массив немного велики. . Возможно, вы захотите добавить особые случаи для меньшего фиксированного числа параметров.
Хм, вы можете сделать это:
public bool IsValidProduct(int productTypeId)
{
bool isValid = false;
if (new[] {10,11,12}.Contains(productTypeId))
{
isValid = true;
}
return isValid;
}
или, если хотите, то же самое короче:
public bool IsValidProduct(int productTypeId)
{
return (new[] {10,11,12}.Contains(productTypeId));
}
Вы можете сделать что-то вроде:
new int[] { 10,11,12 }.Contains(productTypeID);
или пойти дальше и создать расширение для int в соответствии со строками:
public static bool In(this int i, params int[] ints)
{
return ints.Contains(i);
}
С использованием:
if (productTypeID.In(10,11,12)) { ... }
Я бы не сказал, что они самый эффективный, но возможно да.
Я не думаю, что во фреймворке что-то есть, поэтому вам придется написать свой собственный метод расширения. Ближайшее, что вы можете получить с linq, - это что-то вроде:
if(new[] { 10, 11, 12 }.Contains(productTypeId)) { ... }
Вы можете использовать метод расширения Contains из .NET 3.5. Он работает со всеми перечисляемыми типами:
if (new [] { 10, 11, 12 }.Contains(productTypeId))
{
...
}
var validIds = new [] {10, 11, 12};
validIds.Contains (productId);
Это сработает, если все числа, которые вы хотите, находятся в диапазоне, не совсем функциональном "IN", но вы можете найти это полезным.
if (Enumerable.Range(10, 3).Contains(productTypeId))