Ich habe 2 Listenobjekte (vereinfacht):Linq Filterliste <string> wo es einen String-Wert aus einer anderen Liste enthält <string>
var fileList = Directory.EnumerateFiles(baseSourceFolderStr, fileNameStartStr + "*", SearchOption.AllDirectories);
var filterList = new List<string>();
filterList.Add("ThisFolderName");
filterList.Add("ThatFolderName");
Ich möchte die fileLst filtern, dass nur Dateien zurückzukehren einem Ordnernamen aus der umschließende Filterliste. (Ich hoffe, das macht Sinn ..)
Ich habe den folgenden Ausdruck versucht, aber das gibt immer eine leere Liste zurück.
Ich kann nicht scheinen zu verstehen, warum ich nichts bekomme, klar ich vermisse etwas, aber ich habe keine Ahnung was.
[EDIT]
Ok, so scheint es, ich in meiner Frage klarer sein sollte, ich hatte versucht, für Dateien in meinem filelist mit einem Teil enthält String-Wert von meiner Filterliste zu suchen. Ich habe die Antwort unten für diejenigen markiert, die versuchen, eine ähnliche Sache zu tun.
Warum Sie gebrauchte? var filteredFileList = fileList.Where (fl => filterList.Contains (fl)); –
Ich denke, für Ihren Ausdruck, nehmen Sie eine einzelne Dateiliste als x wird ein char, es sieht aus, wenn filterList enthält das char. (Zeichenfolge wird IEnumerable –
@David Tryon - Ich habe nicht zuvor schneiden, obwohl es laufen Ich erhalte eine leere Liste, wenn ich weiß, dass sie einige Werte enthalten sollte: var filteredFileList = fileList.Intersect (filterList); –