Wenn ich zwei Sequenzen habe und ich beide zusammen verarbeiten will, kann ich sie vereinigen und weg gehen wir.Gibt es einen besseren linq Weg zu "Union" ein einzelnes Element?
Jetzt sagen wir, ich habe ein einzelnes Element, das ich zwischen den zwei Sequenzen verarbeiten möchte. Ich kann es schaffen, indem ich ein Array mit einem einzigen Gegenstand erstelle, aber gibt es einen besseren Weg? das heißt
var top = new string[] { "Crusty bread", "Mayonnaise" };
string filling = "BTL";
var bottom = new string[] { "Mayonnaise", "Crusty bread" };
// Will not compile, filling is a string, therefore is not Enumerable
//var sandwich = top.Union(filling).Union(bottom);
// Compiles and works, but feels grungy (looks like it might be smelly)
var sandwich = top.Union(new string[]{filling}).Union(bottom);
foreach (var item in sandwich)
Process(item);
Gibt es eine genehmigt Art und Weise, dies zu tun, oder ist dies die genehmigte Art und Weise?
Dank
Dies ist, wie ich neige dazu, es zu tun .. nicht glücklich fühlen, aber nie dachte, es wert war, um Arbeit .. Frage mich, ob es einen Weg gibt eine implizite Konvertierung zu schreiben zwischen T-und T-Array .. –
mögliche Duplikat von [Lieblings-Weg, um eine neue IEnumerable Sequenz von einem einzigen Wert zu erstellen?] (http://StackOverflow.com/Questions/1019737/favorite-way-to-create-an- new-iienerablet-sequence-from-a-single-Wert) –
nawfal
Sie können den Union-Ausdruck nur ein bisschen vereinfachen, indem Sie new string [] auf nur new [] reduzieren. Sonst ist Jon Hannas Lösung wahrscheinlich der beste Weg, dies zu tun, wenn man so etwas oft macht. –