我有下面的Delphi代码,它定义了一个集合,然后是一个简单的if语句,用于检查集合类型的传递值是否落入特定值。我该如何将此Delphi集代码转换为C#?
TOverwriteMode = (omNone, omDateAndSize, omDateOrSize, omDate, omSize, omForce);
...
if OverwriteMode in [omDateAndSize, omDateOrSize, omDate, omSize] then
begin
end;
我它转换为使用enum
C#,但用于检查值的代码,现在由一个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#集合的等价方式来简化它?
感谢乔恩,那很好。我只需要在readonly之后添加HashSet来编译它,这很好! (道歉名称错别字!) –
Pauk
2010-02-22 14:38:06
@Pauk:Doh--那是因为之前有'var' :)将它编辑成答案。 – 2010-02-22 15:39:08