2016-07-12 25 views
-2

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

+0

Entweder ist die Art und Weise Neil gezeigt hat (die auch unter der Haube Schleifen) oder 'var list = guidStrings.ConvertAll (Guid.Parse);' –

Antwort

3

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); 
+0

Guter Punkt auf der 'ConvertAll()' Methode, Tim. +1 –

3

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.

+0

Oder einfach 'Select (Guid.Parse)'. – juharr

+0

Oh ja, guter Punkt. :) –

0

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); 
0

Dies ist, wie es gemacht wird:

IEnumerable<string> guidStrings = ..... // GUID-compatible strigns 
List<Guid> guids = guidStrings.Select(s => new Guid(s)).ToList();