使用foreach循环定义列表中包含各种字符串的单个messageBox可能吗?

ng8*_*92a 2 c# foreach messagebox

我在var集中有各种字符串

var linhas = new[] { line8, line9, line10}
Run Code Online (Sandbox Code Playgroud)

我想在一个消息框中显示它们,但是!我不想展示那些空的,所以我使用以下内容

foreach (var l in linhas)
    if (l != null)
    {
        MessageBox.Show(l);
    }
Run Code Online (Sandbox Code Playgroud)

但正如预测的那样,它一次只能显示一条消息.有可能以某种方式从列表中删除空行,并在单个MessageBox中仅显示除null之外的那些行吗?

MessageBox.Show(linenotnull8 + "\n" + linenotnull10);
Run Code Online (Sandbox Code Playgroud)

Gra*_*ICA 5

使用以下内容,您可以过滤掉null字符串,然后使用String.Join从剩余字符串中创建单个字符串linhas,使用回车符分隔每个字符串.

MessageBox.Show(String.Join(Environment.NewLine, linhas.Where(x => x != null)));
Run Code Online (Sandbox Code Playgroud)

旁注...我使用的Environment.NewLine不是'\n'因为它将使用正确的换行符,具体取决于您运行的环境(Windows vs Unix).

对于非Unix平台包含"\ r \n"的字符串,或者对于Unix平台包含"\n"的字符串.