Ну, это действительно открытый вопрос.
Прежде всего, синтаксис типа «[my_collection. [Column_name]]» не будет работать - если вы хотите сделать что-то подобное, вам может понадобиться действие «Получить значение из коллекции по строке и столбцу».
Dim Proper_Row As System.Data.DataRow
Dim i As Integer = Coll_in.Columns.IndexOf(Field_name)
Dim Rows_count as Integer = Coll_in.Rows.Count
if i = -1 Then Throw new Exception ("Field does not exist")
if Rows_count < Row_number Then Throw new Exception ("Row Number higher than actual row count")
Proper_Row = Coll_in.rows(Row_number - 1)
Result = Proper_Row(Field_name)
Proper_Row = nothing
i = nothing
Rows_Count = nothing
Другой подход - переименовать последний столбец в нечто известное. У вас может быть действие, которое будет возвращать имя столбца n = th, и действие, которое будет переименовывать столбец. Небольшой совет - вы можете найти количество столбцов, используя действие «считать столбцы» из стандартного объекта «Коллекции».
//Finding n-th column name
outname = in_coll.columns(column_index).name
//renaming column
Collection_Out = Collection_In.Copy
For Each c As DataColumn in Collection_Out.Columns
If c.ColumnName = Field_Name Then
c.ColumnName = New_Name
Exit For
End If
Next
Другим подходом может быть удаление всех столбцов, кроме того, который вы хотите. К сожалению, у меня нет кода, который я мог бы оставить здесь.
И, наконец, может быть, вы могли бы использовать действие, которое бы просто возвращало список значений из коллекции?
//Join field values to string
For Each dr As DataRow In DT.Rows
If dr(FieldName) <> "" Then
JoinedString = JoinedString & Separator + dr(FieldName)
End If
Next
If JoinedString <> "" Then
JoinedString = JoinedString.Substring(Separator.Length, JoinedString.Length - Separator.Length)
End If
OutString = JoinedString