列出条款

时间:2014-04-02 18:00:54

标签: c# linq list

下面的代码可以成功找到列表中是否存在值。如何添加where子句,使其仅适用于Type =" File"

的列表项
if (MyGlobals.ListOfItemsToControl.Any(x => x.sItemName == info.FullName)) // Dont allow duplicates
{
}

我想要的伪代码

if (MyGlobals.ListOfItemsToControl.Any(x => x.sItemName == info.FullName).Where(y => y.Type == "File")) // Dont allow duplicates
{
}

2 个答案:

答案 0 :(得分:3)

您的过滤器(Where)应该在Any之前

if (MyGlobals.ListOfItemsToControl
                  .Where(y => y.Type == "File")
                  .Any(x => x.sItemName == info.FullName))

您还可以将Any中的两个条件合并为:

if (MyGlobals.ListOfItemsToControl
                  .Any(x => x.Type == "File"
                  && x => x.sItemName == info.FullName))

答案 1 :(得分:1)

设置你可以简单地使用

的地方
if (MyGlobals.ListOfItemsToControl.Any(x => x.sItemName == info.FullName && x.Type == "File")) // Dont allow duplicates
{
}