2016-07-21 11 views
-2

ich habe eine Klasse und Methodedurch einen C Looping # Sammlungen

public class Datas 
    { 
     public string Name { get; set; } 
     public int Value { get; set; } 
    } 
public void Funnel() 
    { 
     string commandText = "select sc.stagename, count(cs.stages_id) as StageCount from currentstage cs inner join stagesconfig sc on cs.stages_id = sc.stages_id group by cs.stages_id,sc.stagename"; 


     string constrings = WebConfigurationManager.ConnectionStrings["Data"].ToString(); 

     SqlConnection myConn = new SqlConnection(constrings); 
     SqlCommand myComm = new SqlCommand(commandText, myConn); 

     myConn.Open(); 
     List<Datas> fruitinfo = new List<Datas>(); 

     SqlDataReader reader = myComm.ExecuteReader(); 
     if (reader.HasRows) 
     { 
      while (reader.Read()) 
      { 
       fruitinfo.Add(new Datas 
       { 
        Name = reader.GetValue(0).ToString(), 
        Value = Convert.ToInt32(reader.GetValue(1)) 
       }); 

      } 

     } 

wie Listen Sie Schleife durch fruitinfo es in Form eines Array Array Speicher muss dies ähnlich sein form.intended die Einzelteile ersetzen in Daten Klammer mit fruitinfo geschleift Liste

Data = new Data(new object[] 
       { 
        new object[] { "Website visits", 10000 }, 
        new object[] { "Downloads", 5000 }, 
        new object[] { "Requested price list", 2000 }, 
        new object[] { "Invoice sent", 1000 }, 
        new object[] { "Finalized", 500 } 
       }), 
+4

Warum brauchen Sie dieses hässliche 'Objekt []' überhaupt? –

Antwort

1
var myArray = fruitinfo.Select(d => new object[] { d.Name, d.Value }).ToArray(); 
+2

Sie waren 7 Sekunden schneller ... – smoksnes

2
var myArray = fruitinfo.Select(x => new object[] { x.Name, x.Value }).ToArray(); 

Und die Verwendung es mit Ihren Data -obje ct.

Data = new Data(myArray); 
+0

hat perfekt funktioniert ... Danke –

0

Ich bin nicht sicher, warum Sie eine Reihe von anonymen Objekte produzieren müssen, aber Sie können ein Wörterbuch verwenden.

private static void Funnel() 
    { 
     var datas = new List<Datas> 
         { 
          new Datas { Name = "Website visits", Value = 10000 }, 
          new Datas { Name = "Downloads", Value = 5000 }, 
          new Datas { Name = "Requested price list", Value = 2000 }, 
          new Datas { Name = "Invoice sent", Value = 1000 }, 
          new Datas { Name = "Finalized", Value = 500 } 
         }; 

     var data = datas.ToDictionary(datas1 => datas1.Name, datas1 => datas1.Value); 
     foreach (var item in data) 
     { 
      Console.WriteLine(string.Format("{0}, {1}",item.Key, item.Value)); 
     } 

     var arry = data.ToArray(); 
     foreach (var item in arry) 
     { 
      Console.WriteLine(string.Format("{0}, {1}", item.Key, item.Value)); 
     } 
    } 

Output