2014-09-25 25 views
2

我想要定義一個LINQ響應這個問題,我有一個List<List<string>>,我需要比較內部列表的第一行並返回根據比賽名單:根據模式匹配的indext搜索一個List <的一部分

List<List<string>> mainList = new List<List<string>>(); 
List<string>lines = new List<string>(); 
lines.Add("one"); 
lines.Add("two"); 
lines.Add("three"); 
mainList.Add(lines); 
lines=new List<string>(); 
lines.Add("bus"); 
lines.Add("clock"); 
lines.Add("chicken"); 
mainList.Add(lines); 

如何使用LINQ返回包含"bus"整個列表?

回答

5

如果你想在小組列表比較任何元素然後執行:

List<string> subList = mainList.FirstOrDefault(r => r.Contains("bus")); 

如果你只想比較第一要素在子列表然後執行:

List<string> subList = mainList.FirstOrDefault(r => r.FirstOrDefault() == "bus"); 
3

你可以試試這個:

var result = mainList.FirstOrDefault(x=>x.Contains("bus")); 

以上查詢將搜索mainList中包含的所有列表,它將返回包含字符串「bus」的第一個List。如果沒有這樣的清單,那麼你會得到一個null