linq 在C#中,是否有一种方法可以针对数据库值循环遍历字符串列表

uxhixvfz  于 2022-12-06  发布在  C#
关注(0)|答案(1)|浏览(147)

我正在查询数据库中的结果。我有一个名为Extension的列,可以是gif、txt、docx等。我使用Linq和实体框架核心。扩展名由用户或任何搜索人员提供,我知道我可以在查询中添加多个OR,但我已经制作了如下字符串列表:

List<string> ImageFormats = new List<string>();
            ImageFormats.Add("png");
            ImageFormats.Add("jpg");
            ImageFormats.Add("jpeg");
            ImageFormats.Add("tiff");
            ImageFormats.Add("gif");

现在,我可以向查询中添加多个OR语句,如下所示:

var results = _database.Documents
                .Where(d => d.Extension == "png" || d.Extension == "png")
                .ToList();

但我想一个不同的方法,我可以使用我的扩展名列表上面的查询如下:

var results = _database.Documents
                  .Where(d => d.Extension == ImageFormats)
                  .ToList();

是的,上面的代码无法工作。有没有一种方法可以实现这样的事情?

ep6jt1vc

ep6jt1vc1#

看起来您只需要使用.Contains方法:

List<string> ImageFormats = new List<string>();
ImageFormats.Add("png");
ImageFormats.Add("jpg");
ImageFormats.Add("jpeg");
ImageFormats.Add("tiff");
ImageFormats.Add("gif");

var results = _database.Documents
                       .Where(d => ImageFormats.Contains(d.Extension))
                       .ToList();

相关问题