Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何有条件地将新的XElement添加到wpf中现有的根元素中?_C#_Wpf - Fatal编程技术网

C# 如何有条件地将新的XElement添加到wpf中现有的根元素中?

C# 如何有条件地将新的XElement添加到wpf中现有的根元素中?,c#,wpf,C#,Wpf,我通过以下方式创建了一个XElement: private void Analyze( IEnumerable<XElement> inputData) { XElement rootElement = new XElement("Items", from singleInputItem in inputData select new XElement("Element", new XAttribute("ID", "default ID"

我通过以下方式创建了一个
XElement

private void Analyze( IEnumerable<XElement> inputData)
{

    XElement rootElement = new XElement("Items",
    from singleInputItem in inputData
    select new XElement("Element",
         new XAttribute("ID", "default ID"),
         new XAttribute("Type", "default type"),
         new XElement("Width", 120),
         new XElement("Height",150)
         ));
}
现在,当
状态
时,我想在
元素
内的
根元素
中添加一个新的
元素
,因此我想做如下操作:

private int contentNumber = 0;

private void getContent()
{
    return contentNumber++;
}

private bool status = false;
//some function to change status here
private void Analyze( IEnumerable<XElement> inputData)
{

    XElement rootElement = new XElement("Items",
    from singleInputItem in inputData
    select new XElement("Element",
         new XAttribute("ID", "default ID"),
         new XAttribute("Type", "default type"),

         if( status == true )
         {
             new XElement("Content", getContent());
         }

         new XElement("Width", 120),
         new XElement("Height",150)
         ));
}
private void Analyze(IEnumerable inputData)
{
XElement根元素=新XElement(“项目”,
从inputData中的singleInputItem
选择新元素(“元素”,
新XAttribute(“ID”、“默认ID”),
新XAttribute(“类型”、“默认类型”),
如果(状态==真)
{
新的XElement(“Content”,getContent());
}
新像素(“宽度”,120),
新XElement(“高度”,150)
));
}

显然,上面的
if
部分不正确。但我在互联网上找不到任何解决办法来做同样的事情。有人能帮忙吗?谢谢

您可以为此使用所谓的
三元运算符

condition ? 'value if true' : 'value if false';
或者,在您的情况下:

...
    new XAttribute("Type", "default type"),
    status ? new XElement("Content", getContent()) : null,
    new XElement("Width", 120),
...
这是正确的。但如果status为false,您根本不想包含status字段,则必须有条件地初始化
rootElement
,如下所示:

private void Analyze( IEnumerable<XElement> inputData)
    {
        XElement rootElement = null;
        if(status)
        {
          rootElement = new XElement("Items",
          from singleInputItem in inputData
          select new XElement("Element",
               new XAttribute("ID", "default ID"),
               new XAttribute("Type", "default type"),
               new XElement("Content", getContent());     
               new XElement("Width", 120),
               new XElement("Height",150)
             ));
        }
        else
        {
          rootElement = new XElement("Items",
          from singleInputItem in inputData
          select new XElement("Element",
               new XAttribute("ID", "default ID"),
               new XAttribute("Type", "default type"),     
               new XElement("Width", 120),
               new XElement("Height",150)
             ));
        }
    }
private void Analyze(IEnumerable inputData)
{
XElement rootElement=null;
如果(状态)
{
rootElement=new-XElement(“项目”,
从inputData中的singleInputItem
选择新元素(“元素”,
新XAttribute(“ID”、“默认ID”),
新XAttribute(“类型”、“默认类型”),
新的XElement(“Content”,getContent());
新像素(“宽度”,120),
新XElement(“高度”,150)
));
}
其他的
{
rootElement=new-XElement(“项目”,
从inputData中的singleInputItem
选择新元素(“元素”,
新XAttribute(“ID”、“默认ID”),
新XAttribute(“类型”、“默认类型”),
新像素(“宽度”,120),
新XElement(“高度”,150)
));
}
}

非常感谢,我也试过这个,它成功了:)它成功了。但这是更高的维护和重复代码。IMHO首选三元空值与新像素。