Ich lese ein collection of strings (of GUID format)
von excel
und möchte sie in der Datenbank als collection of GUIDs
speichern. Ich frage mich nur, ob es einen sauberen Weg gibt, List<string>
zu List<Guid>
mit Linq
zu konvertieren. Ich bin nicht daran interessiert, mich durchzuschleichen.Konvertieren Sie eine Sammlung von Zeichenfolgen in Sammlung von GUID
Antwort
entweder LINQ:
List<Guid> guids = guidStrings.Select(Guid.Parse).ToList();
oder List.ConvertAll
, die ein wenig effizienter ist, weil sie weiß, die Größe:
List<Guid> guids = guidStrings.ConvertAll(Guid.Parse);
Guter Punkt auf der 'ConvertAll()' Methode, Tim. +1 –
Yep
IEnumerable<Guid> guids = guidStrings.Select(x => Guid.Parse(x));
Oder wie juharr sagte in ihrem Kommentar unten, können Sie diese ein wenig zu einer "Methodengruppe" vereinfachen kann:
IEnumerable<Guid> guids = guidStrings.Select(Guid.Parse);
Da # C arbeiten können, dass das einzige Argument Passed-In ist das gleiche wie das einzige Argument, das von Guid.Parse()
benötigt wird, so dass der Compiler das für Sie tut.
Oder einfach 'Select (Guid.Parse)'. – juharr
Oh ja, guter Punkt. :) –
würde Der einfachste Ansatz Vorteil der Enumerable.Select()
Methode zu nehmen, die Guid
jedes Ihrer einzelnen Strings auf einer Karte kann entsprechend:
// This will parse each string present in your strings collection to its cooresponding guid
var guids = strings.Select(Guid.Parse);
Dies ist, wie es gemacht wird:
IEnumerable<string> guidStrings = ..... // GUID-compatible strigns
List<Guid> guids = guidStrings.Select(s => new Guid(s)).ToList();
Entweder ist die Art und Weise Neil gezeigt hat (die auch unter der Haube Schleifen) oder 'var list = guidStrings.ConvertAll (Guid.Parse);' –