Have the following XML
So created an object Assay and a corresponding list of AssayDirectories with a list of Extensions
Having trouble using linq to populate the object
This works
This throws exceptions because it cannot cast to the list
VB.NET:
</assay>
<assay assayid="1234" assayname="name" assaytype="type">
[INDENT]<importfromfile>True</importfromfile>
<directories>
[INDENT]<inputdirectory>
[INDENT]<directoryname>c:\</directoryname>
<extension>*.txt</extension>
<extension>*.csv</extension>
<status/>[/INDENT]
</inputdirectory>
<inputdirectory>
[INDENT]<directoryname>c:\</directoryname>
<extension>*.*</extension>
<status />[/INDENT]
</inputdirectory>[/INDENT]
[INDENT]<outputdirectory>
[INDENT]<directoryname>c:\</directoryname>
<status />[/INDENT]
</outputdirectory>[/INDENT]
</directories>[/INDENT]
</assay>
So created an object Assay and a corresponding list of AssayDirectories with a list of Extensions
Having trouble using linq to populate the object
This works
VB.NET:
Dim result = From a In doc.<assays>.<assay> Where a.@assayname = assayQuery _
Select New AssayConfig With { _
.AssayName = a.@assayname, _
.AssayId = a.@assayid, _
.AssayType = a.@assaytype, _
.AssayFromFile = Convert.ToBoolean(a.<importfromfile>.Value)}
This throws exceptions because it cannot cast to the list
VB.NET:
Dim inputdir = From a In doc...<assay> Where a.@assayname = assayQuery _
Select New AssayDirectories With { _
.DirectoryName = a.<directories>.<inputdirectory>.<directoryname>.Value, _
.DirectoryType = "INPUT", _
.Extension = New List(Of Extension)(From ext In a.<directories>.<inputdirectory>.<extension> Where a.@assayname = assayQuery Select ext.ToList), _
.Status = a.<directories>.<inputdirectory>.<status>.Value}