Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 选择对象列表中的对象的特性,该对象列表也在另一个对象列表中_C#_Linq - Fatal编程技术网

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();