我有一个这样的类(class):
public class FileCollection:ObservableCollection<IUserFile>.
在类中,我想根据名称列表获取集合的子集。
我想它会是这样的:
List<IUserFile> selectedFiles = new List<IUserFile>;
foreach(string s in names)
{
var matchingFiles = this.SelectMany(userFile => userFile.Name.Equals(s));
foreach(IUserFile uf in matchingFiles)
{
selectedFiles.Add(uf);
}
}
此时,我在 Select 或 SelectMany 调用方面遇到问题;编译器错误消息没有多大帮助。
任何有关如何从集合中提取子集的建议将不胜感激......
最佳答案
使用 Where
相反 - “根据谓词过滤值序列” - 这样:
var matches = this.Where(userFile => userFile.Name.Equals(s));
而不是 SelectMany
,它“将序列的每个元素投影到 IEnumerable 并将结果序列展平为一个序列。”
关于linq - C# Linq SelectMany,返回整个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15365950/