Обрезка в последний раз “”, разделитель строки в VB.NET

DocumentClient не следует использовать для каждого запроса, а вместо этого вы должны использовать его как единичный экземпляр в вашем приложении. Создание клиентского запроса добавит много времени на задержку.

Так что я бы объявил свойство Client как «статическое» и инициализировал его в конструкторе Service. Вы можете вызвать await Client.OpenAsync() в методе Connect, чтобы «прогреть» клиента, и в каждом из ваших открытых методов напрямую использовать экземпляр Client для вызова API DocumentDB.

Утилизируйте клиента в методе утилизации Сервиса.

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

https://docs.microsoft.com/en-us/azure/cosmos-db/performance-tips#sdk-usage [116 ]

Надеюсь, это поможет!

16
задан Peter Mortensen 10 December 2016 в 13:59
поделиться

3 ответа

Интересно, что на основе примера кода OP, никто не предложил использовать String.Join или создать вывод с StringBuilder

Dim names As New List(Of String)
With ad.Tables(2)
    For i As Integer = 0 To .Rows.Count - 1
        ' DataRow("columnName").ToString() returns value or empty string if value is DbNull
        If .Rows(i)("name").ToString() <> "" Then
           names.Add(.Rows(i)("name"))
        End If
    Next
End With

Dim temp As String = String.Join(", ", names)
testing &= "&Name=" & temp & vbCrLf

С LINQ и DataRow дополнительный метод .Field(Of T), код будет выглядеть более простым

Dim names = ad.Tables(2).
    AsEnumerable().
    Select(row => row.Field<String>("name")).
    Where(name => String.IsNullOrEmpty(name) = False)

Dim temp As String = String.Join(", ", names)
testing &= "&Name=" & temp & vbCrLf

, Если Вы пойдете далее Вы, банка (должна) использовать StringBuilder для создания строки и использования Aggregate метод для создания строки из набора

0
ответ дан 30 November 2019 в 17:38
поделиться

Вы можете избежать символа Trim / extra, если установите разделитель внутри цикла

Dim delimiter as string = ""
For i As Integer = 0 To .Rows.Count - 1
   If .Rows(i)("name") & "" <> "" Then
      temp &= delimiter & .Rows(i)("name")
      delimiter = ","
   End If
Next
3
ответ дан 30 November 2019 в 17:38
поделиться
temp = temp.Trim().Substring(0, temp.Length - 1)

или

temp = temp.Trim().Remove(temp.Length - 1)
14
ответ дан 30 November 2019 в 17:38
поделиться
Другие вопросы по тегам:

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