假设我有2个IEnumerable val html = "html"
lazy val compileCopyTask = taskKey[Unit](s"Copy $html.")
compileCopyTask := {
println(s"Start copying $html")
val mainVersion = scalaVersion.value.split("""\.""").take(2).mkString(".")
val to = target.value / ("scala-" + mainVersion) / html / "classes"
to.mkdirs()
val from = baseDirectory.value / html
IO.copyDirectory(from,to)
println(s"$from -> $to...done.")
}
compile in Compile := {
compileCopyTask.value
(compile in Compile).value
}
>类型的文件。我如何在它们上执行内连接和/或组连接?我尝试过以下但是.Join方法不适用于IEnumerable。任何帮助将不胜感激。
<XElement
答案 0 :(得分:1)
假设file1
和file2
包含IEnumerable<XElement>
,其中每个XElement
都有子元素OrderID
,您可以按OrderID
值进行加入像这样:
var innerjoin = file1.Join(file2,
c => (string)c.Element("OrderID"),
o => (string)o.Element("OrderID"),
(c, o) => new {Customer = c, Order = o});
或使用等效的查询语法:
var innerjoin = from c in file1
join o in file2
on (string)c.Element("OrderID") equals (string)o.Element("OrderID")
select new {Customer = c, Order = o};
答案 1 :(得分:0)
在网页上试用以下代码:https://code.msdn.microsoft.com/LINQ-Join-Operators-dabef4e9。您可能想要加入实际的ID号而不仅仅是元素名称。
var innerjoin = from f1 in file1.Elements("OrderID")
join f2 in file2.Elements("OrderID") on f1 equals f2
select new { file1, file2 };