Ich möchte den besten Ansatz zum Konvertieren bool[]
in object[]
in C# .NET 4.0 finden.
Jetzt habe ich diese Variablen:Richtiger Weg zum Verpacken von Bool [] in Objekt [] in C#
object[] objectArray = new object [] { true, false, true };
string[] stringArray = new string[] { "true", "false", "true" };
bool[] boolArray = new bool[] { true, false, true };
Alle fein erstellt werden. Für 'clear types', suc wie bool
und object
, boxing funktioniert einwandfrei (object o = true;
). Aber in diesem Fall kann ich tun Umwandlung nur aus einem String-Array auf ein Objektarray, aber nicht von einem boolean-Array:
objectArray = stringArray; // OK
objectArray = boolArray; // WRONG Cannot implicitly convert bool[] to object[]
Auch in einigen Methoden, die ich eine Liste von Objektarrays sandte. Wie in der vorangegangenen Fall, ich kann diese (Umwandlung) tut für string, aber nicht für einen boolean-Array:
List<object[]> testList;
testList = new List<object[]>() { objectArray }; // OK
testList = new List<object[]>() { stringArray }; // OK
testList = new List<object[]>() { boolArray }; // WRONG - I can not add bool[] into object[]
Von einigen Methoden, ich habe einen boolean-Array mit vielen Elementen im Innern ... und die letzte Methode, gibt nach allen Berechnungen als Ergebnis ein Objektarray zurück (manchmal muss es andere Typen zurückgeben und ich möchte es nicht in mehrere Methoden aufteilen).
Während ich return_object_array = boolean_array
nicht verwenden kann. Was ist die beste Methode dafür? Schleifen Sie alle Werte in einem booleschen Array und speichern Sie es am schnellsten in einem Objekt-Array?
Was ist der beste/schnellste/korrekteste Ansatz dafür?
Hinweis: Diese Methode ist unter .NET 4.0 geschrieben, aber wenn Sie eine bessere Lösung für .NET 4.5 wissen, würde ich es gerne wissen.
'boolaray.Select (x => (Objekt) x) .ToList();' –
Ich denke, das ist ein X/Y-Problem - Warum wollen Sie eine Reihe von booleans konvertieren möchten eine Reihe von Objekten an erster Stelle? Warum gibt die Methode Arrays verschiedener Typen zurück? Warum arbeitest du mit 'List
Ich kann keine generischen Typen verwenden, da einige Methoden erstellt werden, die die Schnittstelle implementieren (nicht meine Schnittstelle :)). Aber ich weiß, dass es besser ist, Generika zu verwenden. – Atiris