Многострочные строки в VB.NET

Во-первых, получите имена столбцов, где есть фактическое значение, а не ноль. Это может быть сделано с помощью функции, такой как:

val notNullColNames = Seq("A", "B", "C", "D").map(c => when(col(c).isNotNull, c))

. Для создания массива значений обычно используется array, однако, это все равно будет возвращать ноль, когда входное значение равно нулю. Вместо этого, одним из решений является использование concat_ws и split для удаления любых нулевых значений:

df.select($"id", split(concat_ws(",", notNullColNames:_*), ",").as("newColumn"))

Для примера ввода это будет выводить:

+---+------------+
| id|   newColumn|
+---+------------+
|  1|      [B, C]|
|  2|[A, B, C, D]|
|  3|         [A]|
+---+------------+
138
задан Isaace96 2 August 2019 в 15:34
поделиться

4 ответа

You can use XML Literals to achieve a similar effect:

Imports System.XML
Imports System.XML.Linq
Imports System.Core

Dim s As String = <a>Hello
World</a>.Value

Remember that if you have special characters, you should use a CDATA block:

Dim s As String = <![CDATA[Hello
World & Space]]>.Value

2015 UPDATE:

Multi-line string literals were introduced in Visual Basic 14 (in Visual Studio 2015). The above example can be now written as:

Dim s As String = "Hello
World & Space"

MSDN article isn't updated yet (as of 2015-08-01), so check some answers below for details.

Details are added to the Roslyn New-Language-Features-in-VB-14 Github repository.

217
ответ дан 23 November 2019 в 23:26
поделиться

Нет, VB.NET еще не имеет такой функции. Это будет доступно в следующем повторении VB (Visual Basic 10) однако (ссылка)

-9
ответ дан 23 November 2019 в 23:26
поделиться

если это похоже на C# (у меня нет VB.Net установленным), можно снабдить префиксом строку

foo = @"Multiline
String"

это также полезно для вещей как "C:\Windows\System32\" - это по существу выключает выход и включает мультилинию.

-16
ответ дан 23 November 2019 в 23:26
поделиться

VB.Net не имеет такой функции, и он не будет прибывать в Visual Studio 2010. Функцию, которую отсылает jirwin, называют неявным продолжением строки. Это имеет отношение к удалению _ от многострочного оператора или выражения. Это действительно устраняет необходимость завершить многострочную строку с _, но в VB нет все еще никакого строкового литерала mult-строки.

Пример для многострочной строки

Visual Studio 2008

Dim x = "line1" & vbCrlf & _
        "line2"

Visual Studio 2010

Dim x = "line1" & vbCrlf & 
        "line2"
48
ответ дан 23 November 2019 в 23:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: