我正在研究 .NET CORE 6 解決方案。我有檔案串列以及每個擴展名和另一個擴展名串列,即.csv。我想 LINQ 根據串列 2 過濾串列 1 中的檔案。即如果串列 2 有 .csv 和 .txt,那么 LINQ 應該只過濾掉 .csv 和 .txt 檔案。我確實實施了解決方案,但它正在使用回圈
private List<string> FilterFilesWithAcceptedExtenison(List<string> files, List<string> acceptedExtensions)
{
List<string> FilteredFiles = new List<string>();
foreach(var file in files)
{
var extension = Path.GetExtension(file);
if (acceptedExtensions.Contains(extension))
{
FilteredFiles.Add(file);
}
}
return FilteredFiles;
}
uj5u.com熱心網友回復:
您可以使用子句根據給定的條件.Where()進行過濾。files像,
根據謂詞過濾一系列值。
using System.Linq;
using System.Collections.Generic;
...
List<string> FilteredFiles = files
.Where(file => acceptedExtensions.Contains(Path.GetExtension(file))
.ToList();
uj5u.com熱心網友回復:
它只是
var filteredFiles = files.Where(f => acceptedExtensions.Contains(Path.GetExtension(f)));
ToList()如果你真的需要它是 a ,你可以把它放在最后List<string>。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/476617.html
上一篇:LINQ:如何簡化這個查詢?
