当表达式为真时如何使用三元运算符?

时间:2016-03-31 19:15:23

标签: c#

我想在 ForEach扩展程序中使用三元运算符时遇到问题。我的代码如下:

List<string> lstText = new List<string>();
lstComboBox.ForEach(x => !String.IsNullOrWhiteSpace(x.Text) ? lstText.Add(x.Text));

我需要使用三元运算符来验证是否有文本comboBox,然后将其保存到列表中,如果找不到某些内容,则不执行任何操作。

1 个答案:

答案 0 :(得分:12)

  

我需要使用三元运算符来验证是否有文本comboBox,然后将其保存到列表中,如果找不到某些内容,则不执行任何操作。

不要那样做。这是一种可怕的风格,难以推理,与常规做法相反。

这样做:

var result = comboBox
             .Select(comboBoxItem => comboBoxItem.Text)
             .Where(text => !String.IsNullOrWhiteSpace(text))
             .ToList();

您有三个逻辑操作:从组合框中取出文本,过滤掉空白文本,创建一个列表。这个程序非常清楚地完成了这三件事。除非你需要,否则不要乱用循环和三元组并将内容添加到列表中;在表达您要做的事情的级别编写程序,而不是您是如何做的