我正在使用Model
,并使用enum
获取已命名项目的列表。Enum适用于此?
class Verse
{
public int Number { get; set; }
public string Text { get; set; }
}
class Chapter
{
public int Number { get; set; }
public List<Verse> Verses { get; set; }
}
class Book
{
public string Name { get; set; }
public List<Chapter> Chapters { get; set; }
}
class Bible
{
public Versions Version { get; set; }
public List<Book> Books { get; set; }
}
enum Versions
{
asv1901,
bbe,
darby,
kjv,
nasb,
niv,
nkjv,
nlt,
rsv,
web,
ylt
}
这似乎是做一个合乎逻辑的方式,但我发现,与enum
工作时增加不必要的困难。
foreach (var chapter in chapters)
{
var bibleitem = new Bible();
bibleitem.Version = (Versions)Enum.Parse(typeof(Versions), chapter.version);
}
会更有意义只使用string[]
什么?我确信enum
有一些额外的好处,但我质疑我的好处。
什么类型是你的'chapters'收藏? –
'enum'比较'string'比较效率更高,enums用于编码的清晰度。帮助你快速理解你的代码。 – Media
您可以改为使用通用['TryParse'](https://msdn.microsoft.com/en-us/library/dd783499(v = vs.110).aspx)。 '版本ver; Enum.TryParse(chapter.version,out ver); bibleitem.Version = ver;' – juharr