我可以在单个语句中从集合中进行此linq语句迭代吗?

Nov*_*Net 2 c# linq

bool isExist = objCustomization.CustomSettings.Where(p => p.CustomizationType == selCustomizationType && p.CategoryID == selCategoryID).Any();

if (isExist)
{
    chkFixLimit.Checked = objCustomization.CustomSettings.Where(p => p.CustomizationType == selCustomizationType && p.CategoryID == selCategoryID).FirstOrDefault().IsDefaultLimit;
}
else chkFixLimit.Checked = false;
Run Code Online (Sandbox Code Playgroud)

Ser*_*kiy 5

布尔值的默认值是false这样你甚至不需要任何条件 - 只需选择第一个或默认IsDefaultLimit值:

chkFixLimit.Checked =
   objCustomization.CustomSettings
       .Where(p => p.CustomizationType == selCustomizationType && p.CategoryID == selCategoryID)
       .Select(p => p.IsDefaultLimit)
       .FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

如果您有非布尔值或默认值(整数为零)不符合您的要求,则更新(回答您的评论),如果没有符合您条件的项目,您可以提供自己的默认值:DefaultIfEmpty:

maxCountCmb.SelectedIndex = 
    objCustomization.CustomSettings
        .Where(p => p.CustomizationType == selCustomizationType && p.CategoryID == selCategoryID)
        .Select(p => p.DefaultFreeCount)
        .DefaultIfEmpty(-1)
        .First();
Run Code Online (Sandbox Code Playgroud)