2010-09-29 8 views
2

J'ai une telle méthode qui accepte un tableau irrégulier d'objets.Array Array to Object Array

public void MyDataBind(object[][] data) 

Je l'utilise comme celui-ci

GoogleChart1.MyDataBind(new[] { new object[] { "September 1", 1 }, new object[] { "September 2", 10 } }); 

La question serait de savoir comment passer/CAST valeurs de tableau prédéfinies à cette méthode? Disons que j'ai deux tableaux ci-dessous et que je veux les passer à la méthode.

var sDate = new string[] {"September 1", "September 2"}; 
var iCount = new int[] { 1, 2 }; 

Répondre

4

EDIT:

encore plus simple et plus propre:

var result = sDate.Select((s, index) => new object[] { s, iCount[index] }).ToArray(); 

Une solution simple:

List<object> items = new List<object>(); 
    for (int i = 0; i < sDate.Length; i++) 
     items.Add(new object[] { sDate[i], iCount[i] }); 
    var result = items.ToArray(); 

Vous pouvez définir une méthode Combiner (T [] array1, T [ ] array2) afin d'obtenir une solution plus générique.

3

Si vous utilisez .NET 4 alors la méthode Zip pourrait être utilisée pour fusionner les deux tableaux:

MyDataBind(sDate.Zip(iCount, (s, i) => new object[] { s, i }).ToArray());