As the others stated bool? is not equal to bool. bool? can also be null, see Nullable<t> (msdn).
If you know what the null state wants to imply, you easily can use the ?? - null-coalescing operator (msdn) to convert your bool? to bool without any side effects (Exception).
Example:
//Let´s say "chkDisplay.IsChecked = null" has the same meaning as "chkDisplay.IsChecked = false" for you
//Let "check" be the value of "chkDisplay.IsChecked", unless "chkDisplay.IsChecked" is null, in which case "check = false"
bool check = chkDisplay.IsChecked ?? false;
var systemWeb = Element.Element("system.web");
var compilation = systemWeb?.Element("compilation");
var assemblies = compilation?.Element("assemblies");
if (assemblies != null)
{
foreach (var li in RemoveList)
{
IEnumerable<XElement> targetElements = assemblies.Elements("add").Where(s => s.Attribute("assembly").Value.Contains(li));
targetElements.Remove();
}
}
var systemWeb = Element.Element("system.web");
var compilation = systemWeb?.Element("compilation");
var assemblies = compilation?.Element("assemblies");
if (assemblies != null)
{
foreach (var li in RemoveList)
{
IEnumerable<XElement> targetElements = assemblies.Elements("add")
.Where(s => s.Attribute("assembly")?.Value.Contains(li) ?? false);
targetElements.Remove();
}
}