2013-05-09 80 views
5

的另一名單上有下一個arhitecture的屬性:選擇一個對象,它是在對象的列表,這也是在對象

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; } 
} 

而且還有List<Element> 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"... 

如何擺脫那些不包含種子的元素?

回答

12
List<string> suggestions = someList.SelectMany(x => x.elementDetails) 
            .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(); 
+1

感謝的人!奇蹟般有效! – VladN 2013-05-09 11:48:19

相關問題