Не нужно вводить метод расширения, он все равно встроен в Linq:
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main(string[] args)
{
List<FileInfo> files = new List<FileInfo>();
files.Add(new FileInfo("OhNo.jpg"));
files.Add(new FileInfo("OhYes.jpg"));
files.Add(new FileInfo("OhMy.pcx"));
files.Add(new FileInfo("OhTrue.png"));
IEnumerable<FileInfo> result = files.Where(
f => new string[] { ".jpg", ".png" }.Contains(f.Extension));
foreach(var r in result) Console.WriteLine("{0}", r);
}
}
Вывод:
OhNo.jpg
OhYes.jpg
OhTrue.png
Вы даже можете сделать это (по крайней мере, как проверено наМоно, я сейчас в Моно):
IEnumerable<FileInfo> result = files.Where(
f => new [] { ".jpg", ".png" }.Contains(f.Extension));
Вот как это объясняет Роб Конери: http://blog.wekeroad.com/2008/02/27/creating-in-queries-with-linq-to-sql/