2016-08-01 14 views
0

Ich habe 30 string [4] -Elemente, die Benutzerdaten enthalten. Ich habe 30 Tage generische Liste Sammlung. Wie füge ich jedes Datum als fünftes Element in jeder einzelnen Zeichenkette [] hinzu?Datumsliste zu Array-Sammlungen hinzufügen C#

List<string> _datefromexcel = new List<string>(); 
foreach(DataColumn c in dtRow.Table.Columns) { 
    if (Information.IsDate(c.ColumnName)) { 
     _datefromexcel.Add(c.ColumnName); 
    } 
} 

List<string> newlist = lst.GetRange(startrange, count); 

int i = 0; 
var query = from s in newlist 
let num = i++ 
    group s by num/4 into g 
select g.ToList(); 
var results = query.ToArray(); 

foreach(var item in _datefromexcel) { 
    results.insert(5, item); 
} 

Dies ist alle Datum Wert nach dem fünften Element einfügen.

Bitte beachten Sie die beste Möglichkeit, jeden Datumswert als 5 Element in Array-Sammlung einzufügen.

Antwort

0

Zunächst können Sie nichts in ein Array "einfügen", da es eine statische Größe hat. Sie können jedoch Dinge zu einer Liste hinzufügen, da sich eine Liste dynamisch selbst anpassen kann.

var results = query.ToList(); 

foreach (var item in _datefromexcel) { 
    results.Add(item.ToString()); 
} 

Wenn Sie möchten, können Sie ToArray aufrufen, nachdem die foreach-Schleife ist beendet:

return results.ToArray(); 
0

Sie for Schleife stattdessen verwenden können:

var results = query.ToArray(); 

for (int i = 0; i < results.Length; i++) 
    results[i].Add(_datefromexcel[i]); 

Die LINQ Weise wird ein Bit hässlich:

var results = query.Zip(_datefromexcel, (l, d) => l.Concat(new[] { d }).ToList()).ToArray();