这对c#语言来说只是一个疑惑问题。我已经检查过MSDN运营商,看不到任何关闭。
当我使用LINQ to XML检索一些元素时,我在WHERE方法中传递一些lambda表达式来选择特定的元素。
但我可以看到我正在使用以下声明,这让我有点恼火。
bool myCondition;
// some codes
var elements = xDocument.Descendants("items").
Where(x=>x.Attribute("id")!=null&&
(myCondition)x.Element("blah").Value=="blah":
x.Element("blah").Value!="blah").ToList();
但不知怎的,我一直在写代码如下(不明白为什么:)):
// some codes
var elements = xDocument.Descendants("items").
Where(x=>x.Attribute("id")!=null&&
x.Element("blah").Value?myCondition="blah").ToList();
我看到boolean myCondition为!(感叹号)或=(等号)。 if if then = if if then!。
我只是想知道将来添加这些类型的运营商是否有可能?还是有一些更好的操作员可以缩短我的病情?
这可以与其他任何编程语言一起使用吗?也许是javascript?
如果你要降级,请说明原因。
答案 0 :(得分:1)
您可以在没有条件运算符的情况下在C#中表达该条件:
myCondition?
xDocument.Element("item").Value=="blah":
xDocument.Element("item").Value!="blah"
与:
相同myCondition == (xDocument.Element("item").Value == "blah")
它是否更具可读性是一个悬而未决的问题。您可以考虑使用具有良好名称的辅助方法。