我有以下枚举
public enum PermissionType
{
[JsonProperty(PropertyName = "can_fly")]
PermissionToFly,
[JsonProperty(PropertyName = "can_swim")]
PermissionToSwim
};
Run Code Online (Sandbox Code Playgroud)
以及具有此属性的类
[JsonProperty(PropertyName = "permissions", ItemConverterType = typeof(StringEnumConverter))]
public IList<PermissionType> PermissionKeynames { get; set; }`
Run Code Online (Sandbox Code Playgroud)
我想将枚举列表序列化为字符串列表,并且序列化列表使用指定的字符串PropertyName
(例如"can_swim")而不是属性的实际名称"PermissionToSwim".但是,每当我调用JsonConvert.SerializeObject时,我最终都会
"permission_keynames":["PermissionToFly","PermissionToSwim"]
Run Code Online (Sandbox Code Playgroud)
而不是我想要的
"permission_keynames":["can_fly","can_swim"]
Run Code Online (Sandbox Code Playgroud)
我希望在我的代码中保留短语"PermissionToSwim",序列化为另一个单词.知道我怎么能做到这一点?我的直觉说,注释是罪魁祸首,但我找不到正确的注释.
我正在寻找Visual Studio中的等效功能,以便在Eclipse的Outline View中进行拖放操作.具体来说,在打开您在"大纲视图"中编辑的类后,您按照它们所处的物理顺序查看了类中的所有方法(不按字母顺序排序).您可以单击方法1并将其拖到方法2上方,将方法1中的所有代码从方法2的代码上移动到物理上方.这对组织非常有用.
我在Studio中查看了Class View,而Class View确实列出了类中的所有方法,它会根据您定义的顺序列出它们(显然无法拖动以重新排列).Studio中是否有任何功能允许您查看类的物理布局并通过拖动方法重新排列它?
谢谢,亚历克
在我正在使用的数据库中,我想只从特定的TimeStamp字段中选择年份.特别是,我希望从这个数据库专栏中选择独特的年份.
例如,如果该字段"ModifyTimeStamp"
中的所有时间戳都来自2002年或2006年,我想简单地返回"2002"和"2006"的结果.如果这是不可能的,我会满足于获得一堆'2002年与'2006年混合的结果,并将在稍后解析它.
到目前为止,"Select ModifyTimeStamp from Table"
我所能做的就是- 我所有解析的尝试都失败了.我开始阅读关于extract
SQL 的命令,但我相信它只适用于PostgreSQL.
任何建议非常感谢!
编辑:得到了答案,非常感谢datagod和Marc.我正在寻找的代码最终成为:
"Select distinct YEAR(ModifyTimeStamp) from Table"
我有一个数据库,其中包含一个成分表和一个食谱R表.这两个表有多对多的关系,因为一个食谱使用了许多成分,并且在许多食谱中使用了一种成分.我有第三个交叉引用表,它使用交叉引用验证模式来强制执行我的多对多关系,并使用字符串外键(而不是整数)完成.
假设我的数据库之外有一系列成分C,我怎样才能查询配方表R中每个可以使用C中提供的成分列表制作的配方?
其他需要考虑的事情
1)速度(当然)最终会成为一个问题,但正确性是我现在所坚持的.
2)成分C的收集可能非常大(约100种成分).
任何答案,甚至只是正确方向的指针将不胜感激.
谢谢,
亚历克
我目前正在使用枚举来描述许多可能的操作系统平台.我有东西WIN32,SOLARIS64,LINUX32,但也有更广泛的类别,如ALLWIN和ALLUNIX.我在我的代码中有一个位置,我需要决定给定的平台是否属于另一个平台.对我而言,这听起来像继承,但显然枚举不能相互继承.
然后,我想到将这些平台从1个枚举转换为彼此继承的空类.我觉得这在概念和空间上是一个可怕的想法,但不是C#的主人我以为我会在这里发帖寻找更有经验的意见.有什么想法吗?
这看起来像是这样的:
public class ALL {};
public class ALLWIN : ALL {};
public class WINNT : ALLWIN{};
public class WIN32 : WINNT{};
Run Code Online (Sandbox Code Playgroud)
... 等等等等.