这对我来说是一个古老的问题我希望能用linq解决。
假设我有一个列表 foo ,其字母为A-E,我想构建一个如下所示的串联字符串字符串:
a& b& c& d& ë
这可以构建整个列表,但是有额外的" &安培; "最后
var myString = "";
foo.ForEach(x => myString += String.Format("{0} & ", x));
我喜欢找到一个干净的单行解决方案来构建这个(减去最后的额外连接符,而不必编写扩展方法。
答案 0 :(得分:2)
如何将其更改为string[]
,然后join
呢?
List<string> foo;
// ...
string joinedString = string.Join(" & ", foo.ToArray());
// or, as vc 74 pointed out below, in .NET 4+ you can do
string joinedString = string.Join(" & ", foo);
答案 1 :(得分:2)
var concatstring = String.Join("&", foo);
答案 2 :(得分:0)
LINQ可以使用Aggregate来完成。 String.Join更好,但有一条评论说LINQ不能做这类事情,所以......
[TestMethod]
public void TestAggregate()
{
List<string> input = new List<string>{"A", "B", "C"};
string output = input.Aggregate((list, next) => list + " & " + next);
Assert.AreEqual(output, "A & B & C");
}