[英]LINQ Specify multiple conditions
如何在下面的LINQ中指定多个条件?
if (Books.Select(x => x.BookName).Count() !=
Books.Select(x => x.BookName).Distinct().Count())
{
//Todo
}
我想指定一些类似这样的东西:
if (Books.Select(x => x.BookName && x.price).Count() !=
Books.Select(x => x.BookName && x.price).Distinct().Count())
{
//Todo
}
您不需要选择即可获得第一个计数。 您可以使用匿名类型来获取第二个计数。 这将获得不同的书名和价格的数量:
if (Books.Count() != Books.Select(x => new { x.BookName, x.price}).Distinct().Count())
{
//Todo
}
因此,要回答您的问题,请将每个项目投影到匿名类型中。
但是,为避免多次迭代源数据(如果Book
代表数据库查询,这尤其成问题),并且避免重复执行投影,可以改用GroupBy
:
bool areDuplicatedBooks = Books.GroupBy(x => new{x.BookName, x.price})
.Where(group => group.Count() > 1)
.Any()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.