我将如何转换特尔斐设置代码为C#? [英] How would I convert this Delphi Set code to C#?
本文介绍了我将如何转换特尔斐设置代码为C#?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有以下Delphi代码定义一组,然后一个简单的,如果来检查,如果集合类型的传递值落在一定值范围内声明。
I've got the following Delphi code that defines a set and then a simple if statement that checks if a passed value of the set type falls within certain values.
TOverwriteMode = (omNone, omDateAndSize, omDateOrSize, omDate, omSize, omForce);
...
if OverwriteMode in [omDateAndSize, omDateOrSize, omDate, omSize] then
begin
end;
我是用转换为C#的枚举
,但现在检查值的代码包含一个 if或
声明,似乎有点长篇大论给我。
I've converted it to C# using an enum
, but the code for checking the value now consists of an if or
statement which seems a bit long winded to me.
public enum FileOverwriteMode
{
None,
DateAndSize,
DateOrSize,
Date,
Size,
Force,
}
...
if ((overwriteMode == FileOverwriteMode.DateAndSize) ||
(overwriteMode == FileOverwriteMode.DateOrSize) ||
(overwriteMode == FileOverwriteMode.Date) ||
(overwriteMode == FileOverwriteMode.Size))
{
}
有没有办法使用一些C#一套相当于简化呢?
Is there a way to simplify it using some kind of C# set equivalent?
推荐答案
好了,你可以这样做:
private static readonly HashSet<FileOverWriteMode> ValidOverwriteModes
= new HashSet<FileOverWriteMode>
{
FileOverwriteMode.DateAndSize, FileOverwriteMode.DateOrSize,
FileOverwriteMode.Date, FileOverwriteMode.Size,
};
...
if (ValidOverwriteModes.Contains(overwriteMode))
{
// ...
}
(重命名 ValidOverwriteModes
视的真正含义是什么。 )
(Rename ValidOverwriteModes
depending on what the real meaning is.)
这篇关于我将如何转换特尔斐设置代码为C#?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文