【发布时间】:2015-07-20 19:05:57
【问题描述】:
我有这两条 LINQ 行,它们仅在一种情况下不同。
node.Image.Tag == null 和 node.Image.Tag != null
if (treeSelectedNode.Image.Tag == null)
{
radNode = tree.Find(node => node.Level == 0 && node.Image.Tag == null
&& node.Text.Equals(treeSelectedNode.Text));
}
else
{
radNode = tree.Find(node => node.Level == 0 && node.Image.Tag != null
&& node.Text.Equals(treeSelectedNode.Text));
}
有没有办法在LINQ行之前创建条件然后使用它,以便我可以删除多余的行?
我知道我可以这样做:
radNode = treeSelectedNode.Image.Tag == null ? tree.Find(node => node.Level == 0
&& node.Image.Tag == null && node.Text.Equals(treeSelectedNode.Text)) :
tree.Find(node => node.Level == 0 && node.Image.Tag != null
&& node.Text.Equals(treeSelectedNode.Text));
但这不是我想要的。
【问题讨论】:
-
你能写:
radNode = tree.Find(node => node.Level == 0 && node.Image.Tag == treeSelectedNode.Image.Tag && node.Text.Equals(treeSelectedNode.Text));吗?我问是因为我不确定你的代码逻辑,node.Image.Tag == treeSelectedNode.Image.Tag是否正确 -
@KhanhTO No. 它不能比较两个对象的内容
标签: c# linq conditional-statements