2016-04-21 14 views
-1

Ich habe ein Array von Strings:Copy String-Array zu einem anderen Array-Objekt

var a = new string[] { "a", "b", "b" }; 

und eine Klasse:

public class MyClass 
{ 
    public MyField[] MyField {get; set;} 
} 

wo MyField eine Klasse:

public class MyField 
{ 
    public InnerField[] InnerField{get; set;} 
} 

wo InnerField ist:

public class InnerField 
{ 
    public string Output {get; set;} 
} 

Also ich möchte von meinem Array (a) zu MyField[] kopieren.

Ist es möglich, es durch z. B. LINQ zu machen?

+0

Zwischen MyField und Output gibt es InnerField Array. Sie versuchen also, vom Array zum Array von Arrays zu mappen, oder? Wie willst du es abbilden? Was ist die "Regel"? – Ian

+0

Ich habe das vom Service bekommen. – Cieja

+0

@Cieja hast du überhaupt eine der gegebenen Antworten versucht? – fubo

Antwort

0

Vielleicht:

var a = new string[] { "a", "b", "b" }; 
var innerFields = a.Select(s => new InnerField { Output = s }); 
var mc = new MyClass 
{ 
    MyField = a.Select(s => new MyField { InnerField = innerFields.ToArray() }).ToArray() 
}; 

Wenn Sie auch nur die gleiche InnerField[] Referenz verwenden möchten, nicht innerFields.ToArray() am assignement verwenden, sondern bereits bei der Deklaration von innerFields. Dann beziehen sich alle MyField Instanzen auf das gleiche Array.

Wenn Sie nur eine Instanz von MyField im MyField Array wollen:

var mc = new MyClass 
{ 
    MyField = new[]{ new MyField { InnerField = innerFields.ToArray() }} 
}; 
Verwandte Themen