Как к маршальскому массиву структур в C#?

Вот решение, основанное на этом вопросе / ответе: R XML - объединение родительских и дочерних узлов (с одинаковым именем) в фрейм данных

library(xml2)
library(dplyr)
page<-read_xml('
  
         2
         
         Cardiac/MM/Dimension/LVIDd
         MM/LVIDd
         Average
         0.05617021151
         
         
         2
         
         Cardiac/MM/Dimension/LVIDd
         MM/LVIDs
         Measurement No. 1
         0.05341702
         
         ')


rows<- page %>% xml_find_all('//row') 

dfs<-lapply(rows, function(node){
   #find the attr value from all child nodes
   names<-node %>% xml_children() %>% xml_attr("name")  
   #find all values
   values<-node %>% xml_children() %>% xml_text()

   #create data frame and properly label the columns
   df<-data.frame(t(values), stringsAsFactors = FALSE)
   names(df)<-names
   df
})

#bind together and add uid to final dataframe.
answer<-bind_rows(dfs)
answer

# indexpatient height           ParameterMeasure ParameterId  ResultIdentifier   ResultValue
# 1            2        Cardiac/MM/Dimension/LVIDd    MM/LVIDd           Average 0.05617021151
# 2            2        Cardiac/MM/Dimension/LVIDd    MM/LVIDs Measurement No. 1    0.05341702
> 

8
задан SDD 8 April 2009 в 11:16
поделиться

1 ответ

Я далеко не эксперт по P / Invoke, но мне интересно, может ли помочь сделать это параметром in / out :

DllImport("marshall.dll", CallingConvention = CallingConvention.Cdecl)]
private static extern void doIt([In, Out] RECORD[] dataRecord);

Я не ожидал бы , что это будет необходимо, хотя, как и в случае с LayoutKind.Sequential , я надеюсь, что ваша структура уже является blittable-типом, и что массив будет слишком легкомысленным.

14
ответ дан 5 December 2019 в 12:12
поделиться
Другие вопросы по тегам:

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