Mel*_*sus 35 c# linq string .net-3.5
如何编写从List中选择项目并将它们连接在一起的Linq表达式(或其他任何内容)?
例
IList<string> data = new List<string>();
data.Add("MyData1");
data.Add("MyData2");
string result = //some linq query... I try data.Select(x => x + ",");
//result = "MyData1, MyData2"
Run Code Online (Sandbox Code Playgroud)
Adr*_*der 71
为什么不去(String.Join方法)
string joined = String.Join(",", data.ToArray());
Run Code Online (Sandbox Code Playgroud)
但如果它必须是LINQ,你可以试试
string joinedLinq = data.Aggregate((i, j) => i + "," + j);
Run Code Online (Sandbox Code Playgroud)
Sim*_*ver 12
如果你坚持使用LINQ,你可能会想要使用Aggregate()
IList<int> data = new List<int>();
data.Add(123);
data.Add(456);
var result = data.Select(x => x.ToString()).Aggregate((a,b) => a + "," + b);
Run Code Online (Sandbox Code Playgroud)
我不推荐这个,因为我发现如果列表包含零项目,这将会失败 - 或者如果它只有1个项目.我忘了,但它都失败了:-)
String.Join(...) is the best way
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,数据类型不是字符串,您可以这样做:
string.Join(",", data.Select(x => x.ToString()).ToArray())
Run Code Online (Sandbox Code Playgroud)