我想要在ForEach扩展中使用三元运算符时出现问题。我的代码如下:如何在表达式为真时使用三元运算符?
List<string> lstText = new List<string>();
lstComboBox.ForEach(x => !String.IsNullOrWhiteSpace(x.Text) ? lstText.Add(x.Text));
我需要使用三元运算符来验证有一个文本组合框,然后将其保存到列表中,如果你没有找到的东西,什么也不做。
我想要在ForEach扩展中使用三元运算符时出现问题。我的代码如下:如何在表达式为真时使用三元运算符?
List<string> lstText = new List<string>();
lstComboBox.ForEach(x => !String.IsNullOrWhiteSpace(x.Text) ? lstText.Add(x.Text));
我需要使用三元运算符来验证有一个文本组合框,然后将其保存到列表中,如果你没有找到的东西,什么也不做。
我需要使用三元运算符来验证是否有文本组合框,然后将它保存到列表中,如果您没有找到某个东西,什么都不做。
不这样做。这是可怕的风格,很难推理,并违背惯例。
这样做:
var result = comboBox
.Select(comboBoxItem => comboBoxItem.Text)
.Where(text => !String.IsNullOrWhiteSpace(text))
.ToList();
你有三个逻辑运算:获取文本出来的组合框,过滤掉空白文本,创建一个列表。这个程序非常清楚地完成了这三件事情。除非需要,否则不要混淆循环和三元组,并将其添加到列表中;写程序的水平表示你正在尝试做什么而不是你是怎么做的。
绝对!谢谢埃里克。 –
那优秀的回应。谢谢你教我,我只是一个徒弟。 – Richard
@理查德:不客气。一些有助于未来的事情是根据你所要做的事情来说明你的问题。很多初学者很早就走错了路,然后问了很多关于如何留在错误路径上的问题。更好地走在正确的道路上。 –
为什么你需要*使用三元运算符,为什么不使用简单的'if()'语句呢? – CodingGorilla
“我需要使用三元运算符” - 不,你不需要。我相信你以前见过'if'关键字。 – hvd