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

Ric*_*ard 0 c#

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

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

我需要使用三元运算符来验证是否有一个文本组合框,然后将其保存到列表中,如果你没有找到什么,什么也不做.

Eri*_*ert 12

我需要使用三元运算符来验证是否有一个文本组合框,然后将其保存到列表中,如果你没有找到什么,什么也不做.

不要那样做.这是一种可怕的风格,很难推理,与普通的做法相反.

做这个:

var result = comboBox
             .Select(comboBoxItem => comboBoxItem.Text)
             .Where(text => !String.IsNullOrWhiteSpace(text))
             .ToList();
Run Code Online (Sandbox Code Playgroud)

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