У меня есть следующий код Delphi, который определяет набор и затем простое, если оператор, который проверяет, находится ли переданное значение типа набора в пределах определенных значений.
TOverwriteMode = (omNone, omDateAndSize, omDateOrSize, omDate, omSize, omForce);
...
if OverwriteMode in [omDateAndSize, omDateOrSize, omDate, omSize] then
begin
end;
Я преобразовал его в C# с помощью enum
, но код для проверки значения теперь состоит из if or
оператор, который кажется немного долго обветренным мне.
public enum FileOverwriteMode
{
None,
DateAndSize,
DateOrSize,
Date,
Size,
Force,
}
...
if ((overwriteMode == FileOverwriteMode.DateAndSize) ||
(overwriteMode == FileOverwriteMode.DateOrSize) ||
(overwriteMode == FileOverwriteMode.Date) ||
(overwriteMode == FileOverwriteMode.Size))
{
}
Существует ли способ упростить, он с помощью некоторого C# установил эквивалентный?
Если предполагается, что имя таблицы - city
, а существующий первичный ключ - pk _ city
, необходимо выполнить следующие действия:
ALTER TABLE city
DROP CONSTRAINT pk_city;
ALTER TABLE city
ADD CONSTRAINT pk_city PRIMARY KEY (city_id, buildtime, time);
Убедитесь в отсутствии записей, для которых time
имеет значение NULL
, в противном случае вы не сможете повторно создать ограничение.
Вы можете попробовать что-то вроде
FileOverwriteMode overwriteMode = FileOverwriteMode.DateAndSize;
if (new HashSet<FileOverwriteMode>
{
FileOverwriteMode.DateAndSize,
FileOverwriteMode.DateOrSize,
FileOverwriteMode.Date,
FileOverwriteMode.Size
}.Contains(overwriteMode))
{
}
-121--4293669- Ну, вы можете сделать:
private static readonly HashSet<FileOverWriteMode> ValidOverwriteModes
= new HashSet<FileOverWriteMode>
{
FileOverwriteMode.DateAndSize, FileOverwriteMode.DateOrSize,
FileOverwriteMode.Date, FileOverwriteMode.Size,
};
...
if (ValidOverwriteModes.Contains(overwriteMode))
{
// ...
}
(Переименовать ValidOverwriteMode
в зависимости от реального значения.)
Можно попробовать что-то вроде
FileOverwriteMode overwriteMode = FileOverwriteMode.DateAndSize;
if (new HashSet<FileOverwriteMode>
{
FileOverwriteMode.DateAndSize,
FileOverwriteMode.DateOrSize,
FileOverwriteMode.Date,
FileOverwriteMode.Size
}.Contains(overwriteMode))
{
}