C# 选择对象列表中的对象的特性,该对象列表也在另一个对象列表中
我有下一个体系结构:C# 选择对象列表中的对象的特性,该对象列表也在另一个对象列表中,c#,linq,C#,Linq,我有下一个体系结构: public class Element { public uint Id { get; set; } public ICollection<ElementDetails> elementDetails { get; set; } } public class ElementDetails { public string ElementTitle { get; set; } public string Content { get;
public class Element
{
public uint Id { get; set; }
public ICollection<ElementDetails> elementDetails { get; set; }
}
public class ElementDetails
{
public string ElementTitle { get; set; }
public string Content { get; set; }
}
公共类元素
{
公共uint Id{get;set;}
公共ICollection元素详细信息{get;set;}
}
公共类元素详细信息
{
公共字符串ElementTitle{get;set;}
公共字符串内容{get;set;}
}
还有一个List someList
,它包含数百个元素。
我试图获取包含特定文本(我称之为“种子”)的ElementTitle(字符串)列表。
我想完成的是提前完成。以下是我的尝试:
List<Element> suggestedElements = someList.Where(s => s.elementDetails.Any(ss => ss.ElementTitle.Contains(seed))).ToList();
List<string> suggestions = suggestedElements .SelectMany(t => t.elementDetails.Select(x => x.ElementTitle)).ToList() }); // contains all ElementTitle, including those ElementTitle that don't contain the "seed"...
List suggestedElements=someList.Where(s=>s.elementDetails.Any(ss=>ss.ElementTitle.Contains(seed)).ToList();
列出建议=建议元素。选择多个(t=>t.elementDetails.Select(x=>x.ElementTitle)).ToList()});//包含所有ElementTitle,包括那些不包含“种子”的ElementTitle。。。
如何去除那些不包含种子的元素?List suggestions=someList.SelectMany(x=>x.elementDetails)
List<string> suggestions = someList.SelectMany(x => x.elementDetails)
.Where(y => y.ElementTitle.Contains(seed))
.Select(z => z.ElementTitle)
.ToList();
.Where(y=>y.ElementTitle.Contains(seed))
.Select(z=>z.ElementTitle)
.ToList();
更简单的是:
List<string> suggestions = someList.SelectMany(x => x.elementDetails)
.Select(y => y.ElementTitle);
.Where(z => z.Contains(seed))
.ToList();
List suggestions=someList.SelectMany(x=>x.elementDetails)
.选择(y=>y.ElementTitle);
.其中(z=>z.包含(种子))
.ToList();