我有一个具有List属性的List。当属性List中的字符串项包含字符串时,如何获取任何List?
这是我的代码,但它什么也没有返回。
class Program
{
static void Main(string[] args)
{
List<Plist> a = new List<Plist>()
{
new Plist()
{
Name="a",
StringList=new List<string>()
{
"a1","b1","c1"
}
},
new Plist()
{
Name="b",
StringList=new List<string>()
{
"a2","b2","c2"
}
},new Plist()
{
Name="c",
StringList=new List<string>()
{
"a3","b3","c3"
}
},new Plist()
{
Name="d",
StringList=new List<string>()
{
"a4","b4","c4"
}
}
};
var list = a.Where(n=>n.StringList.All(s=>s.Contains("a"))).Take(3);
foreach(Plist items in list)
{
Console.WriteLine($"{items.Name}");
foreach(string item in items.StringList)
{
Console.WriteLine($" {item}");
}
}
Console.ReadLine();
}
}
public class Plist
{
public string Name { get; set; }
public List<string> StringList { get; set; }
}
我是Linq的新手,所以希望大家帮助我解决这个问题。
答案 0 :(得分:1)
目前,您的LINQ声明内部列表中的每个(All()
)项都必须包含"a"
。您想要检查项目的Any()
是否包含"a"
。
为此,您应使用Any()
代替All()
:
var list = a.Where(n => n.StringList.Any(s => s.Contains("a")));