Создание списка Анонимного Типа в VB

установите wkhtmltoimage на свой сервер, а затем используйте мой пакет packagist.org/packages/tohidhabiby/htmltoimage для создания изображения из URL вашей цели.

15
задан Daniel 7 November 2014 в 15:56
поделиться

3 ответа

Вот удобный метод для создания списка анонимного типа из одного анонимного типа.

Public Function CreateListFromSingle(Of T)(ByVal p1 As T) As List(Of T)
  Dim list As New List(Of T)
  list.Add(p1)
  return List
End Function

Теперь вы можете просто сделать следующее

Dim list = CreateListFromSingle(dsResource)

РЕДАКТИРОВАТЬ ОП хотел способ создать список перед созданием элемента.

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

  Public Function CreateEmptyList(Of T)(ByVal unused As T) As List(Of T)
    Return New List(Of T)()
  End Function

  Dim x = CreateEmptyList(New With { .Name = String.Empty, .ID = 42 })
14
ответ дан 1 December 2019 в 01:00
поделиться

Поскольку тип является анонимным, вы должны использовать универсальный тип и вывод типа.

Лучший способ - ввести универсальную функцию, которая создает пустую коллекцию из объекта-прототипа.

Module Module1

    Sub Main()
        Dim dsResource = New With {.Name = "Foo"}

        Dim List = dsResource.CreateTypedList
    End Sub

    <System.Runtime.CompilerServices.Extension()> _
    Function CreateTypedList(Of T)(ByVal Prototype As T) As List(Of T)
        Return New List(Of T)()
    End Function

End Module
6
ответ дан 1 December 2019 в 01:00
поделиться

Мне нравится решение Джареда, но я просто хочу показать прямой эквивалент кода Джона (несмотря на мой комментарий там):

Public Function EnumerateFromSingle(Of T)(ByVal p1 As T) As IEnumerable(Of T)
    Return New T() { p1 }
End Function

Не очень полезно само по себе, так как оно не расширяемо ... но может быть использовано для засеять другую магию LINQ для создания больших списков.

2
ответ дан 1 December 2019 в 01:00
поделиться
Другие вопросы по тегам:

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