Just to be clear, the problem is because you had a message box in a loop
You can simply this with Linq
var info = linqData.Select(x => $"{x.Count} {x.Line}");
MessageBox.Show(string.Join(Environment.NewLine,info);
or and StringBuilder
var sb = new StringBuilder();
foreach (var info in linqData)
sb.AppendLine($"{xinfo.Count} {info.Line}");
MessageBox.Show(sb.ToString());
Additional Resources
Enumerable.Select Method
Projects each element of a sequence into a new form.
String.Join Method
Concatenates the elements of a specified array or the members of a
collection, using the specified separator between each element or
member.
$ - string interpolation (C# Reference)
The $ special character identifies a string literal as an interpolated
string. An interpolated string is a string literal that might contain
interpolated expressions. When an interpolated string is resolved to a
result string, items with interpolated expressions are replaced by the
string representations of the expression results. This feature is
available in C# 6 and later versions of the language.
StringBuilder Class
Represents a mutable string of characters.
StringBuilder.AppendLine Method
Appends the default line terminator, or a copy of a specified string
and the default line terminator, to the end of this instance.
Environment.NewLine Property
Gets the newline string defined for this environment.