Java枚举类型的C#等价物是什么?请参阅下面的代码

Java枚举类型的C#等价物是什么?请参阅下面的代码,c#,java,enumeration,C#,Java,Enumeration,这是我在C#中尝试过的,但并不完整: public Enumeration getLogEntries(String header) { return log != null ? ((Vector)log.get(header)).elements() : null; //log is a hashtable // } public IEnumerator getLogEntries(字符串头) { return log.Keys.GetEn

这是我在C#中尝试过的,但并不完整:

public Enumeration getLogEntries(String header)
{
    return log != null ? ((Vector)log.get(header)).elements() : null;
           //log is a hashtable
           //
}
public IEnumerator getLogEntries(字符串头)
{
return log.Keys.GetEnumerator();//此处缺少某些内容!
//日志是字典()
}

不要返回
IEnumerator
,返回
IEnumerable

public IEnumerator getLogEntries(string header)
{
    return log.Keys.GetEnumerator(); //Something is missing here!
    //log is Dictionary<string,List<string>>()
}
这还具有强类型的优点

还有
IList
ICollection
。根据您想对数据执行的操作以及您是否计划
。将
ing添加到数据中

Enumerable
静态类可以在
系统中找到。如果您以前从未听说过Linq,那么Linq
名称空间是一个很好的读物。对我来说,LINQ改变了我看待序列的方式。

IEnumerable(大致)相当于Java中的
Iterable
,类似地
IEnumerator
相当于
Iterator

以下是您的方法的等效C#版本:

foreach(string entries in GetLogEntries("someKey"))
{ 
  //do something
}
public IEnumerable GetLogEntries(字符串头)
{
if(log!=null&&log.ContainsKey(头))
{
返回日志[头];
}
返回null;
}

另外,C#用于方法名,而不是Java。

Thanx Femaref!但是java代码中问号后面的代码行呢?它是否与foreach循环等效?我添加了等效项。注意,您不需要检查
null
,如果
logs
字段不存在,并且返回空序列,那么将根本不执行
foreach
。酷!参数头呢?不管怎么说,看起来我对可枚举类有兴趣。太多了!
foreach(string entries in GetLogEntries("someKey"))
{ 
  //do something
}
public IEnumerable<string> GetLogEntries(string header)
{
    if (log != null && log.ContainsKey(header))
    {
        return log[header];
    }
    return null;
}