Zapytanie LINQ WHERE IN

0

Witam. Mam problem z zapytaniem LINQ. Chcę przeczytać z zewnętrznego pliku konfiguracyjnego rozszerzenia plików, które mają być brane pod uwagę. Na przykład:
extensions = "jpg,bmp,tif"
Następnie rozbijam tego stringu po przecinku i otrzymuję tablicę stringów.
Jak zapytaniem LINQ wydobyć wszystkie te elementy? Chodzi mi o podobne działanie do pętli:

foreach (string sourceFile in Directory.GetFiles(SourcePath, "*.*", SearchOption.AllDirectories).Where(s => s.EndsWith(".jpg") || s.EndsWith(".tif")))
{
}
1
var exts = new List<string> { "jpg", "bmp", "tif" };

...Where(element => exts.Contains(element.Extension))... // gdzie Extension to własność klasy, której obiektem w lambdzie jest element
0

Ale ja nie mam żadnej klasy. Chcę po prostu wydobyć wszystkie elementy z tej tablicy.

3
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _4p
{
    class Program
    {
        static void Main(string[] args)
        {
            var testPhrases = new List<string> { "hello.bmp", "kitty.exe", "silent.jpg", "fire.bmp", "s.x" };
            var wantedExtensions = new List<string> { ".bmp", ".jpg" };
            var minFileNameLength = 4;

            foreach (string phrase in testPhrases.Where(p => 
                p.Length >= minFileNameLength && 
                wantedExtensions.Contains(p.Substring(p.Length - minFileNameLength, minFileNameLength))))
            {
                Console.WriteLine(phrase);
            }
        }
    }
}

Przecież działa. Zrób tak samo tylko testową listę zamień na tablicę plików. Zaznaczyć należy, że nazwa pliku musi mieć co najmniej cztery znaki (kropka plus rozszerzenie, jeśli interesują nas trzyliterowe rozszerzenia).

0

Wszystko działało dobrze tylko miałem niedopatrzenie w pliku wejściowym. Zapomniałem o tej kropce. Dzięki za pomoc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1