我想在 ForEach扩展程序中使用三元运算符时遇到问题。我的代码如下:
List<string> lstText = new List<string>();
lstComboBox.ForEach(x => !String.IsNullOrWhiteSpace(x.Text) ? lstText.Add(x.Text));
我需要使用三元运算符来验证是否有文本comboBox,然后将其保存到列表中,如果找不到某些内容,则不执行任何操作。
答案 0 :(得分:12)
我需要使用三元运算符来验证是否有文本comboBox,然后将其保存到列表中,如果找不到某些内容,则不执行任何操作。
不要那样做。这是一种可怕的风格,难以推理,与常规做法相反。
这样做:
var result = comboBox
.Select(comboBoxItem => comboBoxItem.Text)
.Where(text => !String.IsNullOrWhiteSpace(text))
.ToList();
您有三个逻辑操作:从组合框中取出文本,过滤掉空白文本,创建一个列表。这个程序非常清楚地完成了这三件事。除非你需要,否则不要乱用循环和三元组并将内容添加到列表中;在表达您要做的事情的级别编写程序,而不是您是如何做的。