gpt4 book ai didi

c# - 有没有更好的方法来编写大量重复的 "if(string.IsNullOrEmpty())"实例

转载 作者:太空宇宙 更新时间:2023-11-03 20:59:13 24 4
gpt4 key购买 nike

抱歉,如果这是之前已经回答过的问题,我不确定要搜索什么。我有一些代码在执行单行代码之前有很多空/空检查。这很丑陋,我觉得可能有更好的方法来做到这一点。

例子:

private XElement getWhereXMLNode()
{
XElement where = new XElement("where");

if (!string.IsNullOrEmpty(County))
{
where.Add(new XElement("county", County));
}
if (!string.IsNullOrEmpty(District))
{
where.Add(new XElement("district", District));
}
if (!string.IsNullOrEmpty(Parish))
{
where.Add(new XElement("parishLAStyle", Parish));
}
if (!string.IsNullOrEmpty(ParliamentaryConstituency))
{
where.Add(new XElement("parCon", ParliamentaryConstituency));
}
if (!string.IsNullOrEmpty(GovernmentRegion))
{
where.Add(new XElement("govReg", GovernmentRegion));
}
if (!string.IsNullOrEmpty(MainQuery))
{
where.Add(new XElement("freetext_where", MainQuery));
}

return where;
}

最佳答案

在这种情况下,您可以利用 LINQ to XML 在构造时忽略空值这一事实。创建一个采用元素名称和值并返回元素或 null 的小型本地方法:

private XElement CreateWhereElement()
{
return new XElement("where",
CreateChild("county", County),
CreateChild("district", District),
CreateChild("parishLAStyle", Parish),
CreateChild("parCon", ParliamentaryConstituency),
CreateChild("govReg", GovernmentRegion),
CreateChild("freetext_where", MainQuery));

XElement CreateChild(string name, string value) =>
string.IsNullOrEmpty(value) ? null : new XElement(name, value);
}

关于c# - 有没有更好的方法来编写大量重复的 "if(string.IsNullOrEmpty())"实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47352188/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com