Wie man den ersten und den letzten Wert aus der Liste<string>?
Ich will nur first
und last
Werte von List<string>
.
List<String> _ids = ids.Split(',').ToList();
obige code gibt mir alle ,
getrennte Werte
(aaa,bbb,ccc,ddd,)
Muss ich nehmen und zeigen nur 1. und Letzte Werte , wie kann ich dies tun?
output aaa,ddd
Habe ich versucht mit first
und last
aber ich beseitigen wollen ,
denen ist es am Ende der Zeichenfolge 🙁
- Ich Schätze, dass Sie nicht versuchen, etwas für diesen.
- Es sollte KEIN Komma am Ende, wenn Sie teilen, auf ein Komma. Wenn Sie denken, es ist, es muss sein, weil der code, dass Sie NICHT zeigen, Sie uns. Poste bitte eine kompilierbare Beispiel gibt das zusätzliche Komma am Ende.
- Ich Stimme mit Matthew Watson, ist da ein Leerzeichen am Ende der Eingabe-string. Wie sind Sie mit dem testen der string-Wert. Wo kommt die Ausgabe kommen aus (machst du eine
string.Join
)? ,
kommt am Ende wenn ich denn senden, die Parameter füge ich,
nach jedem parameter, so dass bei.cs
Datei kommt es 🙁- ashuthinks, warum können Sie nicht einfach verwenden
string.Join
die nicht noch die letzten,
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie
List<string>
als ein array wie;Mit der Verwendung von LINQ, die Sie verwenden können,
Enumerable.Ersten
undEnumerable.Last
Methoden.Ausgang;
Hier ein
DEMO
.HINWEIS: Alexander Simonow spitz, wenn Ihr
List<string>
leer ist,First()
undLast()
werfen eine Ausnahme. Sich bewusst sein,FirstOrDefault()
oder.LastOrDefault()
Methoden._ids[_ids.Count - 1];
statt_ids.Last()
?.First()
und.Last()
möglicherweise eine Ausnahme, wenn_ids
Liste leer ist. So ist es besser, zu verwenden.FirstOrDefault()
und.LastOrDefault()
.:)
. Werfen Sie einen Blick stackoverflow.com/revisions/18981352/1Die einfach Antwort ist die Verwendung von Linq
Möchten Sie vielleicht ein wenig mehr Komplexität, weil, wenn die Länge 0 ist, wird eine Ausnahme geworfen werden und wenn die Länge 1 ist dann der gleiche Wert wird zurückgegeben, zweimal.
Dann können Sie mit dieser Erweiterung Methoden.
BEARBEITEN - NICHT-Linq-Version
BEARBEITEN - ENTFERNEN SIE DIE NACHFOLGENDE
,
Entweder von den vorhergehenden Methoden, Linq oder NonLinq werden Sie wahrscheinlich wollen, zu tun.
,
die am Ende der Zeichenfolge ;(idsTemp.Last()
weit mehr Ausdruckskraft, dassidsTemp[idsTemp.Length - 1]
. Linq erlaubt, Ihren code ausgedrückt werden als das, was du meinst, viel einfacher.,
haben Sie nur daran gedacht, mitTrim(new[] {','})
Acording "List-Klasse" - Dokumentation
http://msdn.microsoft.com/library/vstudio/s6hkc2c4.aspx
System.Linq
namespace. Während die Antwort ist technisch gesehen nicht falsch, es könnte ein wenig Verwirrung!Durch die Hände:
Durch LINQ:
By hands
ist genau, ohne LINQ.,
die am Ende der Zeichenfolge 🙁ids.Split(new [] { ',' }, StringSplitOptions.RemoveEmptyEntries)
stattids.Split(',')
.In der Antwort auf den letzten Kommentar aus dem OP:
", kommt am Ende denn wenn ich sende habe ich Parameter hinzufügen , nach jedem parameter, so dass bei .cs-Datei aus, kommt es"
Es sieht aus wie Sie versuchen, generieren ein string mit Komma-getrennten Werten aus einem array von strings.
Können Sie dies tun, indem Sie
- string.Join()
, etwa so: