试图找到一些简单的SQL Server PIVOT示例.我发现的大多数例子都涉及计算或总结数字.我只想转动一些字符串数据.例如,我有一个返回以下内容的查询.
Action1 VIEW
Action1 EDIT
Action2 VIEW
Action3 VIEW
Action3 EDIT
Run Code Online (Sandbox Code Playgroud)
我想使用PIVOT(如果可能的话)来产生如下结果:
Action1 VIEW EDIT
Action2 VIEW NULL
Action3 VIEW EDIT
Run Code Online (Sandbox Code Playgroud)
PIVOT功能可以实现这一点吗?
Kotlin docs表示它支持高阶函数.::function当将顶级函数作为参数传递时,为什么语言甚至需要语法?
鉴于:
fun isOdd(x: Int) = x % 2 != 0
val numbers = listOf(1, 2, 3)
println(numbers.filter(::isOdd)) // here.
Run Code Online (Sandbox Code Playgroud)
为什么不呢
fun isOdd(x: Int) = x % 2 != 0
val numbers = listOf(1, 2, 3)
println(numbers.filter(isOdd)) // simple and makes more sense
Run Code Online (Sandbox Code Playgroud)
更多关于函数引用语法的信息.
对于我们的应用程序,我们在构建过程中不使用Visual Studio。Visual Studio不在生成服务器上。通常,我们一直将Visual Studio视为开发应用程序的“必备条件”,但是对于可重现构建的关键要求都是开放源代码/免费提供。
我现在正在考虑升级到EF6。我不想检入生成的Model代码,因此我需要一种无需Visual Studio即可从edmx文件生成模型的方法。
以前,我们使用过.NET框架附带的EdmGen,我们很高兴我们的构建服务器可以依靠它。在EF6中,推荐的生成代码的方法是使用T4模板。
但是,T4代码生成工具内置于Visual Studio中,并且没有单独提供。
该问题包含部分答案。但是,两个答案都存在问题。
首先,建议许可证允许您从Visual Studio安装中将必要的文件复制到构建服务器。但是,这是一个丑陋的解决方案,因为这意味着无法自动设置新的构建服务器,并且取决于是否存在Visual Studio安装。此外,对于EF6模型生成,我们在Visual Studio安装中还需要EF.Utility.CS.ttinclude。我有一封来自Microsoft开发人员的电子邮件,其中说,按照他的非法律意见,我也可以复制该文件,但是看着许可证,我不相信。
其次,更吸引人的是,MonoDevelop中存在TextTransform的开源实现。但是,同样,我们缺少包含文件,此外,我不清楚此TextTransform工具的工作方式完全相同,并且可以处理EF6给我的模板。到目前为止,我在尝试使其工作时遇到错误。
那么:有没有人有一个使用EF6模型生成而不使用只能从Visual Studio安装获得的工具的有效示例?
想象一下,我有这堂课:
class Example {
val list = List(new Apple(), new Orange(), Banana());
def getIfPresent[T <: Fruit] : Option[T] = list.collectFirst { case x : T => x }
}
Run Code Online (Sandbox Code Playgroud)
你这样使用它:
val example = new Example();
match example.getIfPresent[Apple] {
case Some(apple) => apple.someAppleSpecificMethod();
case None => println("No apple");
}
Run Code Online (Sandbox Code Playgroud)
当然,现在,由于类型擦除,这在JVM中不起作用.getIfPresent只是相匹配的类型Fruit中的collectFirst部分功能,而不是在调用中指定的实际类型.
我试图了解类型标签和类标签,并且真的不知道我将如何实现上述方法.我看到的例子正在尝试做很多不同的事情.我怎么能用TypeTags或其他一些我不知道的机制来实现我想要的方法呢?
编辑:下面的mz答案是完整的解决方案,但这是我的示例代码的外观:
class Example {
val list = List(new Apple(), new Orange(), Banana());
def getIfPresent[T <: Fruit : ClassTag] : Option[T] = list.collectFirst { case …Run Code Online (Sandbox Code Playgroud) 它们在概念上看起来非常相似.我写了这个函数来解决问题.但标准库或其他地方是否存在任何问题?
fun <T> Sequence<T>.toEnumeration(): Enumeration<T> {
val iterator = this.iterator()
return object : Enumeration<T> {
override fun hasMoreElements() = iterator.hasNext()
override fun nextElement(): T = iterator.next()
}
}
Run Code Online (Sandbox Code Playgroud) kotlin ×2
c# ×1
generics ×1
java ×1
laravel-5 ×1
mono ×1
monodevelop ×1
pivot ×1
reflection ×1
scala ×1
sql-server ×1
t-sql ×1
t4 ×1