我发现自己现在经常在我的代码中使用当前模式
var dictionary = new Dictionary<type, IList<othertype>>();
// Add stuff to dictionary
var somethingElse = dictionary.ContainsKey(key) ? dictionary[key] : new List<othertype>();
// Do work with the somethingelse variable
Run Code Online (Sandbox Code Playgroud)
或者有时候
var dictionary = new Dictionary<type, IList<othertype>>();
// Add stuff to dictionary
IList<othertype> somethingElse;
if(!dictionary.TryGetValue(key, out somethingElse) {
somethingElse = new List<othertype>();
}
Run Code Online (Sandbox Code Playgroud)
这两种方式都让人觉得很迂回.我真正想要的是这样的
dictionary.GetValueOrDefault(key)
Run Code Online (Sandbox Code Playgroud)
现在,我可以为字典类编写一个扩展方法来为我做这个,但我想我可能会遗漏已经存在的东西.那么,有没有办法以更简单的方式做到这一点,而无需在字典中编写扩展方法?
我有一个如下所示的枚举
public enum MyEnum {
A,
B;
}
Run Code Online (Sandbox Code Playgroud)
然后我有一个UiBinder文件,其中包含一个自定义组件,该组件具有setter和getter,期望上面的枚举.(我已经删除了额外的代码
<ui:UiBinder ....>
<g:HTMLPanel>
....
<myNamespace:myComponent myAttribute="" />
....
</g:HTMLPanel>
</ui:UiBinder>
Run Code Online (Sandbox Code Playgroud)
我可以引用我的枚举并以任何方式将该值放入myAttribute中吗?我想要完成的是这样的事情
<ui:UiBinder ....>
<ui:with field="myEnumField" type="com.example.MyEnum" />
<g:HTMLPanel>
....
<myNamespace:myComponent myAttribute="{myEnumField.A}" />
....
</g:HTMLPanel>
</ui:UiBinder>
Run Code Online (Sandbox Code Playgroud)
然而,似乎我不能用ui执行此操作:with.我能以任何方式做到这一点吗?
在使用youtrack一段时间之后,我的组织正在考虑迁移到JIRA(由于许多原因).但是,JIRA似乎没有包含开箱即用的youtrack导入器/迁移(尽管反过来似乎有大量的导入器/迁移).
有没有人从youtrack迁移到JIRA并且有任何经验?
编辑:对于之后可能遇到此问题的任何人,我的最终解决方案最终结果如下:
这种方法运行良好,我设法传输了几乎所有数据而没有丢失任何非常重要的数据(虽然当然所有时间戳都搞砸了,但我们认为这是可接受的损失).重要的是要知道youtrack处理从一个项目移动到另一个项目的问题有点违反直觉(他们仍然会出现在他们的第一个项目中,即使他们离开那里,但他们的新项目中有一个问题ID - 当我第一次碰到时,轻微的wtf).
此外,虽然atlassian sdk确实允许我"欺骗"问题的创建者(即,在告诉系统实际上是用户B正在创建此问题的同时以使用A登录并创建问题)但它没有允许您使用注释执行此操作.因此,为了正确地传输这些,我必须实际循环注释并使用相应的新用户登录并发布注释.
此外,youtrack的附件下载有点烦人,所以我最终不得不"手动"下载.:/
但总而言之,这是相对无痛的.需要进行一些装配,需要进行一些最终修饰,但这些都是在几天内完成的.
当我尝试做类似的事情
SELECT Max(ObjectId) FROM Objects;
Run Code Online (Sandbox Code Playgroud)
我在解释计划中看到这是通过排序来执行的.现在,排序(我认为需要复杂性的东西O(nlogn))必须比扫描每一行并记住最大值(可以在其中完成O(n))花费更多.
我在这里错过了什么吗?oracle是真的执行排序还是解释计划只是使用描述"sort"来描述ObjectId列中所有值的简单扫描?如果oracle确实执行了"真正的排序",那么我有理由这样做吗?
提前致谢!