Farklı veri türleri kullanarak bildirilebilecek bir veri dizisini döndürmek için genel bir kapsayıcı olarak object
kullanan bir C# yöntemim var. Böyle bir yöntemin basitleştirilmiş örnek Aşağıda:C# genel bir nesne olarak döndürülen bir diziyi farklı bir temel türüne döndürme
void GetChannelData(string name, out object data)
{
// Depending on "name", the underlying type of
// "data" can be different: int[], byte[], float[]...
// Below I simply return int[] for the sake of example
int[] intArray = { 0, 1, 2, 3, 4, 5 };
data = intArray;
}
Bütün dönen dizi double
için elemanlarını ama şu ana kadar bir yol bulamadım dönüştürmek gerekir. ConvertAll
Zamanında tanımlanan türlerini kabul etmez çünkü sefil başarısız
object objArray;
GetChannelData("test", out objArray);
double[] doubleArray = Array.ConvertAll<objArray.GetType().GetElementType(), double>(objArray, item => (double)item);
: İdeal gibi bir şey yapmak istiyorum. Ayrıca, dynamic
değişkenine ara dönüşümler denemedim.
Böyle bir tür dönüşümü basit bir şekilde gerçekleştirmenin bir yolu var mı?
Verilen tüm yanıtlar iyi çalışıyor; @AlexWiese sürümünü, AnyName'den önce bu tür bir çözüm sağladığından doğru cevabı kabul etti. Hepinize teşekkürler! – Metal76